tailieunhanh - Hand Book Software Construction

Large software systems have many stakeholders. What will its users want? Can we describe user requirements, accurately and succinctly? Large software systems are very complex. Can we describe the design of a complex software system, accurately and succinctly? Can we be sure that a complex system will do what it is designed to do, and that it will not do anything unintended? In this course you will learn some incomplete answers to these difficult questions. I will also attempt to teach you how to “learn how to learn” the technical skills you will need in the future – as a competent computer professional. | Software Construction VCIIT Software Construction Hand Book COMSATS Institute of Information Technology (Virtual Campus) Islamabad, Pakistan Software Construction VCIIT Lecture No. 1 Introduction to Software Construction Subject Overview In earlier courses, you learned how to write programs to solve small problems. In this course we teach programming “in the large”. Large software systems have many stakeholders. What will its users want? Can we describe user requirements, accurately and succinctly? Large software systems are very complex. Can we describe the design of a complex software system, accurately and succinctly? Can we be sure that a complex system will do what it is designed to do, and that it will not do anything unintended? In this course you will learn some incomplete answers to these difficult questions. I will also attempt to teach you how to “learn how to learn” the technical skills you will need in the future – as a competent computer professional. Main Parts of Syllabus Four Themes The object-oriented programming paradigm – Object-orientation, object-oriented programming concepts and programming language constructs – because, for many important problems, OO design is a convenient way to express the problem and its solution in software. Frameworks – Inversion of control, AWT/Swing and JUnit – because many important “sub-problems” have already been solved: these solutions should be re-used! Software quality – Testing, inspection, documentation are used because large teams are designing, implementing, debugging, maintaining, revising, and supporting complex software. Software Construction VCIIT Application-level concurrent programming – Multithreading concepts, language primitives and abstractions will be studied because even our laptops have multiple CPUs. Dual-core smartphones are now available as well. Introduction to OO Design A process of determining what the stakeholders require, designing a set of classes with .