HNDIT23082– Principals of Software Engineering

Slides:



Advertisements
Similar presentations
Adaptive Processes Introduction to Software Engineering Adaptive Processes.
Advertisements

© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
CS3773 Software Engineering Lecture 01 Introduction.
SWE Introduction to Software Engineering
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
7M822 Software Engineering Introduction 7 September 2010.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
Software Engineering COMP 201
Creator: ACSession No: 1 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringSeptember 2006 Introduction to the Module CSE300 Advanced Software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
An Introduction to Software Engineering
An Introduction to Software Engineering
Frequently asked questions about software engineering
Lecture 1.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 System and Software Engineering.
Software Engineering EE323 Y.F. Fung Office: CF605 Consultation hours: Wednesday 6pm-7:30pm.
Chapter 1- Introduction
1 Software Engineering CEN5035 copyright © 1996, 2001 R.S. Pressman & Associates, Inc.
Chapter 1- Introduction Lecture 1 Ready, fire, aim (the fast approach to software development). Ready, aim, aim, aim, aim... (the slow approach to software.
PGD-1303 Software Project Management?. What is software? Software  Computer programs and associated documentation Documentation includes  requirements.
Software Engineering Methodologies (Introduction)
Introduction to Software Engineering. What is Software? “ Software is a set of instructions to acquire inputs and to manipulate them to produce the desired.
SOFTWARE ENGINEERING Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Software Engineering ‘The establishment and use of sound engineering principles (methods) in order to obtain economically software that is reliable and.
Introduction to Computers
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 Software Engineering The first lecture.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
CEN st Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi What.
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Software Engineering Lecture # 1. What is Software? 2 Software is a set of items or objects that includes: programs data documents.
Lecture on Computer Science as a Discipline. 2 Computer “Science” some people argue that computer science is not a science in the same sense that biology.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
An Introduction to Software Engineering. What is Software?
Lecture 1 The University of Lahore Software Engineering Saeed Akhtar
Software Engineering, COMP201 Slide 1 Introduction to software engineering Lecture 1.
1 Software Engineering Ian Sommerville th edition Instructor: Mrs. Eman ElAjrami University Of Palestine.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
An Introduction to Software Engineering Support Lecture.
1 EE29B Feisal Mohammed EE29B: Introduction to Software Engineering Feisal Mohammed Ph: x3156.
An Introduction to Software Engineering (Chapter 1 from the textbook)
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
Software Development Life Cycle (SDLC)
Software Engineering Introduction.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Figures – Chapter 1. Figure 1.1 Frequently asked questions about software engineering QuestionAnswer What is software?Computer programs and associated.
INTRODUCTION TO SOFTWARE DEVELOPMENT (SOFTWARE ENGINEERING-I)
Introduction to Software Engineering Syed Salman Ali B.E, MBA ( MIS, Mktg), PMP.
Chapter 1- Introduction Lecture 1. Topics covered  Professional software development  What is meant by software engineering.  Software engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 1 Slide 1 Chapter 1 Introduction As modified by Randy Smith.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
CS220:INTRODUCTION TO SOFTWARE ENGINEERING CH1 : INTRODUCTION 1.
Introduction to Software Engineering
Advanced Software Engineering Dr. Cheng
CompSci 280 S Introduction to Software Development
Software Project Configuration Management
INTRODUCTION The economies of ALL developed nations are dependent on software. More and more systems are software controlled Software engineering is concerned.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Chapter 1- Introduction
Frequently asked questions about software engineering
Software Engineering (CSE 314)
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Overview: Software and Software Engineering
Introduction to Computers
Presentation transcript:

HNDIT23082– Principals of Software Engineering Week 1: Introduction to Software Engineering

Software Engineering Overall Objectives:  After successfully completing this module, students should be able to:  Explain the principles of software engineering and appreciate the need for engineered process in software development Understand and be fluent in the use of software engineering terminology and nomenclature Be capable of intelligently communicating with most members in a software development organization (management, analysts, architects, developers, ...)

Be able to create and use planning, requirements analysis, domain analysis and design artifacts and carry them into code. Be capable of taking on the role of systems analyst in a software development organization Be able to document all phases of the software development processes 

Outline Syllabus Introduction to software engineering Software development life cycle – from requirements analysis to software design, Coding, testing, maintenance etc. Software requirement specification – different models for identifying software requirements

Software design methodologies Coding and documentation Software Testing Software Project Management Software Configuration Management

Main References Ian Sommerville, Software Engineering, 6th Edition, Addison Wesley, 2000.   R Pressman, Software Engineering - A Practitioners Approach, 5th Edition, McGraw Hill.

Software Engineering Introduction Learning Outcomes Appreciate the problems associated with developing software Understanding the need for a managed approach to software development Be able to define the term ‘Software Engineering’ Identify software quality attributes and their classification

Student Center Activity with First Chapter Goal 1 Activites Assess The student will know the fundamentals of Software Engineering process Define software and software Engineering. Knowledge and Analysis Analysis Differentiate SE and computer Science 3. List various cost associated with SE Knowledge 4. List attributes of good SW 5. Discuss key challenges in SE 6. Explain CASE with examples Application , Synthesis

Software Instructions given to a computer (computer programs)  Systems software  Application software

Types of software System Software: System software is a collection of programs written to service the other programs. eg. Operating systems, drivers, compilers communication software.

Types of software… Web-based software: The network becomes a massive computer providing an almost unlimited software resources that can be accessed by anyone with a modem. Artificial intelligence software: All software makes use of non numerical algorithms to solve the complex problems that are not amenable to computing or straightforward analysis.

Hardware vs Software cost software hardware Time 1960 2002

Failure curve for hardware [Pressman] Failure rate Wear out Infant mortality Time

Failure curves for software -Pressman Failure rate Failure curves for software -Pressman Increase failure rates due to side effects change Actual curve Idealized curve Time

Development Failures Examples IBM Survey, 2000 55% of systems cost more than expected 68% overran the schedules 88% had to be substantially redesigned Bureau of Labour Statistics (2001) for every 6 new systems put into operation, 2 cancelled probability of cancellation is about 50% for large systems average project overshoots schedule by 50%

The Statistics

Distribution of software cost over life cycle Requirements capture Requirement specification 14% Design Implementation Testing 6% Maintenance 60% 40%

Software Problems 3. The quality of software is not satisfactory. Time Schedules and cost estimates of many software projects are grossly inaccurate. 2. Software is costly. 3. The quality of software is not satisfactory. 4. Software is difficult to maintain. 5. The productivity of software people is not satisfactory to meet the demand.

What makes software special? The main difference in software engineering compared to other engineering disciplines are listed below. It is difficult for a customer to specify requirements completely. It is difficult for the developer to understand fully the customer needs. Software requirements change regularly. Software is primarily intangible; much of the process of creating software is also intangible, involving experience, thought and imagination. It is difficult to test software exhaustively.

A Solution – Software Engineering Greater emphasis on systematic , scientific development. Computer assistance in software development (CASE) A concentration on finding out the user’s requirements Formal/Semi Formal specification of the requirements of a system. Demonstration of early version of a system (prototyping) Grater emphasis on development of error free easy to understand code.

Software engineering approach What is the software engineering? Software engineering is an engineering discipline which 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. In this definition there are two key phrases. What is the difference between software engineering and computer science? Computer science is theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software. What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based system development, including hardware, software and processor engineering. Software engineering is a part of this process

Evolution of software engineering Software development began as a single person activity in 1940s and 1950s. Software engineering was considered a new scientific discipline in 1960s and 1970s. In 1980s and 1990s engineering ideas dominated software development

Software Engineering Simple definition : Designing, building and maintaining large software systems. Others => ‘Software engineering is concerned with the theories, methods and tools for developing, managing and evolving software products’ - I Sommerville

=> ‘The practical application of scientific knowledge in the design and construction of computer programs and the associated documentation required to develop, operate and maintain them’ - B.W.Bohem => ‘ The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines’ - F.L. Bauer => ‘The application of systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software’ - IEEE Standard 610.12

Software Engineering – Definition ‘Use of systematic, engineering approach in all stages of software development and project management to develop high quality and economical software using appropriate software tools.’

Software engineering approach What is the software engineering? Software engineering is an engineering discipline which 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. In this definition there are two key phrases. What is the difference between software engineering and computer science? Computer science is theory and fundamentals; software engineering is concerned with the practicalities of developing and delivering useful software. What is the difference between software engineering and system engineering? System engineering is concerned with all aspects of computer-based system development, including hardware, software and processor engineering. Software engineering is a part of this process

Software Quality Attributes Bohem’s Classification Current usefulness - The qualities expected from a software system in user’s point of view. Potential Usefulness - The qualities expected from a software system in developer’s point of view.

Current usefulness Reliability Usability Correctness User friendliness Efficiency Reliability Usability Correctness User friendliness Robustness

Potential usefulness Modularity Reusability Portability Maintainability Modularity Reusability Portability

McCall’s Classification Product operation Product revision Product transition

Product Operation Correctness User friendliness Usability Reliability Efficiency Correctness User friendliness Usability Reliability Robustness

Product Revision Product Transition Flexibility Testability Maintainability Flexibility Testability Product Transition Interoperability Reusability Portability

Changes in the user requirements Availability of new technology Software Maintenance Any software system needs to be changed. Maintenance is the costliest operation in the software development process (about 60%). Software need to be changed due to various reasons. Errors in the system. Changes in the user requirements Availability of new technology Changes in the enterprise or Govt. policy.

Review Questions Look at the following list of goals of software a) Meeting the user’s needs b) Low cost of production c) High Performance d) Portability e) Low cost of maintenance f) High Reliability e) Delivery on time

For each of the following systems choose the two most important goals. A system to manage student fees – to track whether they have paid, calculate the correct amount, issue invoices, send out reminders etc. A system to manage the temperature of a nuclear reactor core. An experimental program to test the efficiency of an algorithm for some mathematical theory. A program that allows viewing of cricket scores on mobile phones.

3. Where are the most errors introduced in software projects? 2. Which stage of software development is most expensive? 3. Where are the most errors introduced in software projects? 4. What do project managers say is the worst problem (consequence) in software projects? 5. ‘All Microsoft software is bug free ‘ – Bill Gates Is he correct? 6. Define the term ‘Software Engineering’.

Multiple choice quiz http://highered.mcgraw-hill.com/sites/0073375977/student_view0/chapter1/multiple_choice_quiz.html