SWE 206: Introduction to Software Engineering PDF
Document Details

Uploaded by SpeedyAntigorite5908
China University of Petroleum
null
Dr. Hamoud Aljamaan, Dr. Sajjad Mahmoud
Tags
Related
- original_1489125567_Chapter_1_Introduction_to_software_product_engineering.pdf
- Chapter 1 Introduction to Software Engineering PDF
- Lecture 1 Introduction to Software Engineering PDF
- Software Engineering Practices PDF
- Chapter 1 - Introduction to Software Engineering Concepts PDF
- Chapter 1 Introduction To Software Engineering Concepts PDF
Summary
This document is a presentation on software engineering, covering topics like course introductions, lecture objectives and software types. It appears to be lecture notes on introduction to software engineering, discussing software processes, requirements, software engineering history, software types, and software quality attributes.
Full Transcript
SWE 206: Introduction to Software Engineering Introduction Slides prepared by: Dr. Hamoud Aljamaan, Dr. Sajjad Mahmoud Course Topics Introduction Software Process Models Requirements Engineering Software Design Human Computer Interaction Testing Project Manageme...
SWE 206: Introduction to Software Engineering Introduction Slides prepared by: Dr. Hamoud Aljamaan, Dr. Sajjad Mahmoud Course Topics Introduction Software Process Models Requirements Engineering Software Design Human Computer Interaction Testing Project Management Ethical Issues 3 Lecture Objectives ü What is Software? ü What is Software Engineering? - vs. Computer Science ü Software vs. Hardware ü Dual Software Role ü Software Quality 4 What is software? § Not just the computer programs themselves but also all associated documentation and configuration data, such as: - Requirements - Design models - User manuals § Software products may be developed for a particular customer or may be developed for a general market - Generic - Custom - Cooperative Solutions 5 Software Types § Generic - developed to be sold to a range of different customers, e.g., PC software such as Word or Excel - The organization that develops the software controls the software specification. § Custom - developed for a single customer according to their specification, e.g., system to support a particular business process - The specification is controlled by the organization that is buying the software. § Cooperative Solutions - Starting with generic system and customizing it to the needs of a particular customer. For example, Enterprise Resource Planning (ERP) systems, such as the SAP system 6 Student Activity § What makes software so important? - A software product’s impacts our life § Behind the Scene Impact - Think of non-computer related business where software has a significant role 7 General Observations § Software is used by virtually everyone in society either directly or indirectly § The economies of the world depend on software 8 What is Software Engineering? 9 Software Engineering History § The first usage of the term "software engineering" was - Seminal NATO conference in 1968 by Professor F.L. Bauer - First conference on software engineering § First Bachelor in Software Engineering - In 1987, Imperial College London introduced the first three-year software engineering Bachelor's degree in the UK and the world. - In 1996, the Rochester Institute of Technology established the first software engineering bachelor's degree program in the United States. 10 “ “The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software” IEEE Standard Glossary of Software Engineering Terminology 11 “ “Software engineering is an engineering discipline that is concerned with all aspects of software production from the early stages of system specification through to maintaining the system after it has gone into use.” Sommerville, Software engineering 12 What is Software Engineering Computer Science and Software Engineering = Programming !! 13 What is Software Engineering Problem C l i ent has some re q u i re me n The system ts!! i n ts !! must do … n s tra. e c o etc som ec urity, and ey, tim e, s Mon Group of d es igners, dev elopers, validators Assign task s!!! Track pr ogress!! 14 Software Engineering § The objective of Software Engineering is to produce high- quality software products with a finite amount of resources and to a predicted schedule. tools methods process model a “Quality” focus 15 Software Engineering sub-disciplines § Software Requirements § Software Design § Software Development Process § Software Testing § Software Project Management § Software Quality § etc. 16 Computer Science vs. Software Engineering 17 CS vs. SWE § Computer science is concerned with the theories and methods that underlie computers and software systems, § Whereas software engineering is concerned with the practical problems of producing software. 18 CS vs SWE Adapted from Ian Sommerville 2006, Software Engineering, 8th edition. Chapter 1 19 Software Engineer as a Profession § Legal requirements to assume or use the job title “Software Engineer” § In Canada - Professional Engineer (P.Eng) designation - Information Systems Professional (I.S.P.) designation § In Saudi Arabia - Saudi Council of Engineers 20 Website https://www.saudieng.sa/ 21 Frequently asked questions about Software 22 Frequently asked questions about Software 23 Frequently asked questions about Software 24 Frequently asked questions about Software 25 Frequently asked questions about Software 26 Frequently asked questions about Software 27 Frequently asked questions about Software 28 Frequently asked questions about Software 29 Frequently asked questions about Software 30 Software vs. Hardware 31 Software Characteristics § Software is developed or engineered; it is not manufactured in the classical sense - Different from hardware manufacturing process. - Software is custom built - However, software industry is moving towards component-based development § Software does not wear out, - but it does deteriorate 32 Hardware Failure § Bathtub curve Failure Rate Infant Mortality Wear Out Time Hardware components suffer from the cumulative effects of dust, vibration, abuse, temperature extremes, etc. 33 Software Failure (Ideal) § Idealized curve (oversimplified) Failure Rate Infant Mortality Time Undiscovered defects will cause high failure rates early in the life of a program. These are corrected and the curve flattens. 34 Software Failure (Realistic) Increased Failure Rate due to side Effects Failure Rate Actual Change Time Before the curve can return to the original steady-state failure rate, another change is requested, causing the curve to spike again. Slowly, the minimum failure rate level begins to rise—the software is deteriorating due to change. 35 Software’s Dual Role 36 Software’s Dual Role Dual Role Vehicle for delivering other Product products 37 Software’s Dual Role § Software is a product - Delivers computing potential - Enables the hardware to deliver the expected functionality - Software is an information transformer: produces, manages, acquires, modifies, displays, or transmits information § Software is a vehicle for delivering a product - Basis for the controls of the computer (e.g., operating systems) - Communication of information (e.g., networking software) - Creation and control of other software (e.g., software tools and environments) 38 Software Applications § No clear breakdown of application types, following are some generally accepted overlapping categories. 1. Stand-alone applications: run on a local computer and do not need to be connected to a network (e.g., office applications, photo manipulation software). 2. Interactive transaction-based applications: execute on a remote computer and accessed by users from their own PCs/terminals. 3. Embedded control systems: software control systems that control and manage hardware devices (e.g., software in a mobile phone, software in a microwave oven). 4. Batch processing systems: business systems designed to process data in large batches (e.g., as phone billing systems, and salary payment systems) 39 Software Applications 5. Entertainment systems: Primarily for personal use and intended to entertain the user (e.g., games). 6. Systems for modeling and simulation: Developed by scientists and engineers to model physical processes. They are often computationally intensive (e.g., molecular biology, astronomy, etc.) 7. Data collection systems: Collect data from their environment using a set of sensors and send that data to other systems for processing. 8. Systems of systems: Systems composed of several other software systems. Some of these may be generic software products, such as a spreadsheet program. 40 Software Quality 41 Software Quality § It is not enough just to produce software - Software should deliver the required functionality § Software should have the appropriate product characteristics - The relative importance of these characteristics varies from product to product 42 Software Quality Attributes § Usability - Users can learn the software to get their job done easily and fast. § Efficiency - It doesn‘t waste resources such as CPU time and memory § Dependability - Software must be trustworthy; e.g., reliability, security, safety § Maintainability - It can be easily changed § Reusability - Its parts can be used in other projects, so reprogramming is not needed 43 Software Quality and Stakeholders Customer (those who pay): User: solves problems at easy to learn; an acceptable cost in efficient to use; terms of money paid and helps get work done resources used QUALITY SOFTWARE Developer: Development manager: easy to design; sells more and easy to maintain; pleases customers easy to reuse its parts while costing less to develop and maintain 44 Software Quality Attribute § Usability - Software must be accepted by the users for what it was designed. - Appropriate user interface & adequate documentation. 45 46 47 Software Quality Attribute § Efficiency - Software should not make wasteful use of system resources - e.g., CPU, Memory, Drive space etc. 48 Software Quality Attribute § Dependability - Software must be trustworthy § Dependability dimensions: - Availability System ability to deliver services when requested - Reliability System does what it is required to do without failing - Safety System’s ability to operate, normally or abnormally, without danger of causing human injury or death and without damage to the system’s environment - Security System ability to protect itself against intrusion 49 50 51 Software Quality Attribute § Dependability is important for: - Safety-critical systems Failure results in loss of life, injury or damage to the environment Example: Chemical plant protection system - Mission-critical systems Failure results in failure of some goal-directed activity Example: Spacecraft navigation system - Business-critical systems Failure results in high economic losses Example: Customer accounting system in a bank 52 Please register to continue using this software 53 Autonomous cars § Full Self Driving (FSD) Cars. 54 Software Quality Attribute § Maintainability - Software should be written in such a way so that it can evolve to meet the changing needs of customers. 55 56 Complex But Organized and Maintainable 57 CrowdStrike § On July 19, 2024, as part of regular operations, CrowdStrike released a content configuration update for the Windows sensor that resulted in a system crash. 58 Software Quality: Conflicts and Objectives § Characteristics relate to each other Complex Trade-Offs § The different qualities can conflict - Increasing efficiency can reduce maintainability or reusability - Increasing usability can reduce efficiency § Setting objectives for quality is a key engineering activity - You then design to meet the objectives 59 Class Activity § List important quality attributes for 60 Key Points § Software engineering is an engineering discipline that is concerned with all aspects of software production § Software production consists of developed programs and associated documentation. § Software Types: - Generic, Custom and Cooperative Solutions 61 Key Points § Software’s dual roles - Software is a product; and - Software is a vehicle for delivering a product § Software does not wear out, - but it does deteriorate § It is not enough just to produce software - Software should deliver the required functionality - Software characteristics also relate to each other 62 Read Chapter 1 63 References § Ian Sommerville, “Software Engineering”, 10th Edition, Addison-Wesley, 2015. § Timothy C. Lethbridge and Robert Laganière, “Object-Oriented Software Engineering: Practical Software Development using UML and Java”, 2nd Edition, McGraw Hill, 2001. § R. S. Pressman, Software Engineering: A Practitioner’s Approach, 10th Edition, McGraw-Hill, 2005. Course Topics Introduction Software Process Models Requirements Engineering Software Design Human Computer Interaction Testing Project Management Ethical Issues