Software Engineering SEMESTER I 2019-2020 Dr. Saman Mirza
23 Slides472.04 KB
Software Engineering SEMESTER I 2019-2020 Dr. Saman Mirza Abdullah [email protected]
There are 12 classes, each three hours. There are three paper-based exams Course Metadata Mid-term exam on 20 marks Final exam on 40 marks. Two quizzes on ( Average 10 marks) There are some activities Project (groups) 20 Attendance and class activities 10 There are also some simple rules . SOFTWARE ENGINEERING 2
To understand the principles of software Engineering. To understand the process of software models and development methods. To understand system requirements and system modeling. Course Objectives To understand and apply the lifecycle of software engineering . SOFTWARE ENGINEERING 3
Class-1 objectives 1. To understand what software engineering is, and why it is important. 2. To present the steps of Software Engineering process. 3. To recognize the type of ethics that software engineering should follow them. 4. To differentiate the software engineering practices. SOFTWARE ENGINEERING 4
Introduction Software are working as system in everywhere : Government and private offices. Industrials. Education. Many controlled systems in our live come with software. Financial Systems have been computerized. Games and entertainments became software. 75% of the world’s population have software controlled mobile phones. Software have to be designed, coded, tested, implemented, and evaluated or maintained. SOFTWARE ENGINEERING 5
Introduction-Different Systems As software used for different purposes, types and approaches of SE are not same. SE is different for simple and complex systems. SE is not same for the functions that have designed for. Systems built without SE expected with high probability be failed. Failures due to increase in complexity of the systems. Failures due to using improper method of SE. SOFTWARE ENGINEERING 6
Questions about Software Engineering Question Answer What is software? What are software? the Computer programs and associated documentation. Software products may be developed for a particular customer or may be developed for a general market. attributes What is software engineering? of good Good software should deliver the required functionality and performance to the user and should be maintainable, dependable and usable. Software engineering is an engineering discipline that is concerned with all aspects of software production. What are the fundamental software Software specification, software development, software validation and engineering activities? software evolution. What is the difference between software System engineering is concerned with all aspects of computer-based engineering and system engineering? systems development including hardware, software and process engineering. Software engineering is part of this more general process. SOFTWARE ENGINEERING 7
Edmodo Code g2t8mu SOFTWARE ENGINEERING 8
SE supports Programmers Professional VS Individual Software engineering is concerned with theories, methods and tools for professional software development. Professionals developing software, but they are not using them. Professional Programmers VS Individual Programmer. A professional program has associated with documentation, libraries, data, and support websites. Those make a software becomes different than a program. SE intended to support Professional programmers rather than individual programmers . SOFTWARE ENGINEERING 9
Software Products Software Engineering is concerning with software products. Main challenges for SE in the view of products are Time to deliver the software product. To what extend users will trust the developed software. Based on the software product, software come in two types. Generic Product : Those software open for any customer able to buy them. Library Information System, is an example. Customized (Bespoke) software: designed for specific task or organization. Air traffic control system. SOFTWARE ENGINEERING 10
Software Products Difference and Adapt Generic VS Customized With generic , developers control the software specification. With Customized: Customer controls the software specification. Adapting Generic to Customized software. A software developer designs a generic system, later will adapt it for specific organization or customer. SOFTWARE ENGINEERING 11
Software Quality Indicators There are many general indicators for measuring the quality of software: Product characteristic Description Maintainability Software should be written in such a way so that it can evolve to meet the changing needs of customers. This is a critical attribute because software change is a predictable requirement of a changing business environment. Dependability and security Software dependability includes a range of characteristics including reliability, security and safety. Dependable software should not cause physical or economic damage in the event of system failure. Malicious users should not be able to access or damage the system. Efficiency Software should not make wasteful use of system resources such as memory and processor cycles. Efficiency therefore includes responsiveness, processing time, memory utilisation, etc. Acceptability Software must be acceptable to the type of users for which it is designed. This means that it must be understandable, usable and compatible with other systems that they use. SOFTWARE ENGINEERING 12
Definition of Software Engineering 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. Engineering discipline Engineers make things work. They apply theories, methods, and tools where these are appropriate. This is related to technical and programing issues. All aspects of software production Includes activities such as software project management, project documentation, financial aspects and other organization constraints. SOFTWARE ENGINEERING 13
Software Process To product a software, SE is using a systematic process called software process. Software process is going through four steps. Software specification, where customers and engineers define the software that is to be produced and the constraints on its operation. Software development, where the software is designed and programmed. Software validation, where the software is checked to ensure that it is what the customer requires. Software evolution, where the software is modified to reflect changing customer and market requirements. SOFTWARE ENGINEERING 14
Software Engnieering Etthics Like other engineering disciplines, software engineering is carried out within a social and legal framework that limits the freedom of people working in that area. Software Engineer should accept that The job wider than just building an application. Your honesty and integrity is necessary throughout the process of building an application. No law bounded standards for software engineer, however, there are some ethics a software engineer should respect them SOFTWARE ENGINEERING 15
Software Engnieering Etthics Confidentiality. You should normally respect the confidentiality of your employers or clients regardless of whether or not a formal confidentiality agreement has been signed. Competence. You should not misrepresent your level of competence. You should not knowingly accept work that is outside your competence. Intellectual property rights. You should be aware of local laws governing the use of intellectual property such as patents and copyright. You should be careful to ensure that the intellectual property of employers and clients is protected. Computer misuse. You should not use your technical skills to misuse other people’s computers. Computer misuse ranges from relatively trivial (game playing on an employer’s machine) to extremely serious (dissemination of viruses or other malware). SOFTWARE ENGINEERING 16
Variety of Software Key messages for this course is that software engineering practice depends on the type of systems being produced. To discuss the concept and fundamental of SE, this course depend on three examples. 1. A personal insulin pump An embedded system in an insulin pump used by diabetics to maintain blood glucose control. 2. A mental health case patient management system A system used to maintain records of people receiving care for mental health problems. 3. A wilderness weather station A data collection system that collects data about weather conditions in remote areas. SOFTWARE ENGINEERING 17
1. Insulin pump control system (Embedded System) Collects data from a blood sugar sensor and calculates the amount of insulin required to be injected. Calculation based on the rate of change of blood sugar levels. Sends signals to a micro-pump to deliver the correct dose of insulin. Safety-critical system as low blood sugars can lead to brain malfunctioning, coma and death; high-blood sugar levels have long-term consequences such as eye and kidney damage. SOFTWARE ENGINEERING 18
Essential high-level Requirements The system shall be available to deliver insulin when required. The system shall perform reliably and deliver the correct amount of insulin to counteract the current level of blood sugar. The system must therefore be designed and implemented to ensure that the system always meets these requirements. SOFTWARE ENGINEERING 19
2. Mental Health Care-Patient Management System (MHC-PMS) It is a medical information system with all privacy and safety of a mental patient. It should be operated in clinks; however, it must have centralized database. Local clink can access the database and do some activities, such downloading, viewing, reading and printing. Privacy It is essential that patient information is confidential and is never disclosed to anyone apart from authorised medical staff and the patient themselves. Safety Some mental illnesses cause patients to become suicidal or a danger to other people. Wherever possible, the system should warn medical staff about potentially suicidal or dangerous patients. The system must be available when needed otherwise safety may be compromised and it may be impossible to prescribe the correct medication to patients. SOFTWARE ENGINEERING 20
3. Wilderness weather station The government of a country decides to deploy several hundred weather stations in remote areas. Weather stations collect data from a set of instruments that measure temperature and pressure, sunshine, rainfall, wind speed and wind direction. SOFTWARE ENGINEERING 21
Standards for Differentiate Software Included hardware or not. Centralized or decentralized. What are the high-level requirements? (State them) What are the main and secondary goals of the project? (State them) Do security issues necessary or not? (If yes, you have to sate them) SOFTWARE ENGINEERING 22
END of CLASS SOFTWARE ENGINEERING 23