Software Engineering Dr.Basem Alkazemi
2 Objectives To develop the necessary analytical skills to build software systems. To develop the necessary analytical skills to build software systems. To establish organizational structures and team work capabilities. To establish organizational structures and team work capabilities. To learn the different stages of software development. To learn the different stages of software development.
3 Assessment Research (20 %) - week 5 Research (20 %) - week 5 Mid-term exam (20%) – week 8 Mid-term exam (20%) – week 8 Project (20%)- week 9 Project (20%)- week 9 10 % software + documentation10 % software + documentation 10 % demonstration10 % demonstration Final Exam (40 %) – week 17 Final Exam (40 %) – week 17
4 Reading list Software Engineering 8 th Ian Sommerville 07 Software Engineering 8 th Ian Sommerville 07 Software Engineering. A Practitioners Approach (5 th Ed) Pressman 01 Software Engineering. A Practitioners Approach (5 th Ed) Pressman 01
5 Course Outline Part I: Part I: Software Development ProcessSoftware Development Process Requirement and SpecificationRequirement and Specification Design TechniquesDesign Techniques Development EnvironmentsDevelopment Environments Testing, documentation and maintenanceTesting, documentation and maintenance Part II: Part II: Component-based Software Engineering (CBSE)Component-based Software Engineering (CBSE) Software ArchitectureSoftware Architecture Design PatternsDesign Patterns
6 Engineering Covers Aspects of: Planning Planning Analysis Analysis Management Management Communication Communication Decision making Decision making Risk estimation Risk estimation
7 Software Engineering Is the establishment and use of engineering principles in order to obtain reliable software systems in economical manner. Fritz Bauer 69 Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available. Software engineers should adopt a systematic and organised approach to their work and use appropriate tools and techniques depending on the problem to be solved, the development constraints and the resources available.
8 COMPUTER SCIENCE CUSTOMER SOFTWARE ENGINEERING Theories Computer Functions Problem Tools and Techniques to Solve Problem A. Tew 1999
9 What is a System A system is a collection of interrelated components that work together to provide some services. Sommerville 01 A system is a collection of interrelated components that work together to provide some services. Sommerville 01 A system is often hierarchal – it includes other systems (i.e. sub-systems). A system is often hierarchal – it includes other systems (i.e. sub-systems). System’s characteristics = sum of sub-systems characteristics.System’s characteristics = sum of sub-systems characteristics. A system has two types of properties: A system has two types of properties: FunctionalFunctional Sorting, printing, counting … etc Sorting, printing, counting … etc Non-functionalNon-functional Performance, reliability, efficiency … etc Performance, reliability, efficiency … etc
10 System Model Is a representation of an abstracted view of a software system that describes the main parts of the system and omits any unnecessary details