(BQ) Part 2 book "Computer science - An overview" has contents: Software engineering, data abstractions, database systems, computer graphics, artificial intelligence, theory of computation. | Find more at 330 23/07/14 10:26 am Find more at Software Engineering In this chapter we explore the problems that are encountered during 7 C H A P T E R the development of large, complex software systems. The subject is called software engineering because software development is an engineering process. The goal of researchers in software engineering is to find principles that guide the software development process and lead to efficient, reliable software products. The Software Engineering Discipline The Software Life Cycle The Cycle as a Whole The Traditional Development Phase Software Engineering Methodologies 331 Modularity Quality Assurance Modular Implementation Coupling Cohesion Information Hiding Components The Scope of Quality Assurance Software Testing Tools of the Trade Some Old Friends Unified Modeling Language Design Patterns Documentation The Human-Machine Interface Software Ownership and Liability 01/08/14 11:18 AM Find more at 332 Chapter 7 Software Engineering Software engineering is the branch of computer science that seeks principles to guide the development of large, complex software systems. The problems faced when developing such systems are more than enlarged versions of those problems faced when writing small programs. For instance, the development of such systems requires the efforts of more than one person over an extended period of time during which the requirements of the proposed system may be altered and the personnel assigned to the project may change. Consequently, software engineering includes topics such as personnel and project management that are more readily associated with business management than computer science. We, however, will focus on topics readily related to computer science. The Software Engineering Discipline To