Software Engineering - Introduction 1 Definition(s) of Software Engineering Establishment and use of sound engineering principles to obtain economically.

Slides:



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

Developed by Reneta Barneva, SUNY Fredonia
Ch.1 Introduction to Software Engineering The Evolution 1.1 The Evolving Role of Software 1/15 In the early days: User Computer Software = Place a sequence.
ICS103 Programming in C Lecture 1: Overview of Computers & Programming
Lecture 1: Overview of Computers & Programming
MIS 2000 Class 20 System Development Process Updated 2014.
Introduction to Computer Science CS 21a: Introduction to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
Chapter 1: Introduction
LECTURE-2. Software Is a Product Designed by software engineers. Consists of : –Programs - that execute within a computer and provides desired functions.
SWE Introduction to Software Engineering
Chapter Chapter Goals Describe the layers of a computer system Describe the concept of abstraction and its relationship to computing Describe.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
1 SWE Introduction to Software Engineering Lecture 22 – Architectural Design (Chapter 13)
Software Engineering II
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
IS112 – Chapter 1 Notes Computer Organization and Programming Professor Catherine Dwyer 2003.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
©TheMcGraw-Hill Companies, Inc. Permission required for reproduction or display. COMPSCI 125 Introduction to Computer Science I.
B1051 Fundementals of Information Technology (Intro)
Chapter 1 Program Design
Introduction to Systems Analysis and Design
Course Instructor: Aisha Azeem
 Software Software  Program vs Software Products Program vs Software Products  Software Characteristics Software Characteristics  Software Crisis.
CS 21a: Intro to Computing I Department of Information Systems and Computer Science Ateneo de Manila University.
PGD-1303 Software Project Management?. What is software? Software  Computer programs and associated documentation Documentation includes  requirements.
Introduction to Software Engineering. What is Software? “ Software is a set of instructions to acquire inputs and to manipulate them to produce the desired.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
HW/SW/FW Allocation – Page 1 of 14CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Allocation of Hardware, Software, and Firmware.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 An Introduction to Software Engineering.
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.
Motivation  Computer programs and associated documentation  Software products may be developed for a particular customer or may be developed for a.
Intro to Architecture – Page 1 of 22CSCI 4717 – Computer Architecture CSCI 4717/5717 Computer Architecture Topic: Introduction Reading: Chapter 1.
Introduction to Software Engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
CDP Standard Grade1 Commercial Data Processing Standard Grade Computing Studies.
Lecture 1Software Engineering1 (Trimester I Session 2002/2003) Lecturer / Tutor Name : Mr. R. Logeswaran
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
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.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
I am an IT Software Engineer. Hello !!. L1 : INTRODUCTION  Goals of Software Engineering:  What IT Demands Today ?  IT Products Design Methodologies.
4 - 1 Copyright © 2006, The McGraw-Hill Companies, Inc. All rights reserved. Computer Software Chapter 4.
INPUT#3 SOFTWARE ENGINEERING. QUALITY SOFTWARE?  Satisfies the needs of the users and programmers involved with it.
Introduction to Software Engineering. Why SE? Software crisis manifested itself in several ways [1]: ◦ Project running over-time. ◦ Project running over-budget.
Operating Systems David Goldschmidt, Ph.D. Computer Science The College of Saint Rose CIS 432.
9 Systems Analysis and Design in a Changing World, Fourth Edition.
Silberschatz and Galvin  Operating System Concepts Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming.
CSE 102 Introduction to Computer Engineering What is Computer Engineering?
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Software Engineering Introduction.
INTRODUCTION TO SOFTWARE DEVELOPMENT (SOFTWARE ENGINEERING-I)
Object-Oriented Software Engineering Chapter 1 Software and Software Engineering.
1.1 Sandeep TayalCSE Department MAIT 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming Batched Systems Time-Sharing Systems.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
Silberschatz and Galvin  Operating System Concepts Module 1: Introduction What is an operating system? Simple Batch Systems Multiprogramming.
Slide 1 Chapter 8 Architectural Design. Slide 2 Topics covered l System structuring l Control models l Modular decomposition l Domain-specific architectures.
Computer Technology: Your Need to Know Chapter 1 Slide 1.
Software and Software Engineering By bscshelp.com software engineering 1.
Introduction to Software Engineering
CS 21a: Intro to Computing I
Software Engineering (CSE 314)
Overview: Software and Software Engineering
Language Processors Application Domain – ideas concerning the behavior of a software. Execution Domain – Ideas implemented in Computer System. Semantic.
CompSci 1: Principles of Computer Science Lecture 1 Course Overview
Introduction Software Engineering.
Presentation transcript:

Software Engineering - Introduction 1 Definition(s) of Software Engineering Establishment and use of sound engineering principles to obtain economically software that is reliable and works on real machines efficiently. (Fritz Bauer)

Software Engineering - Introduction 2 Definition(s) of Software Engineering (cont’d) systematic systematic (i) Application of a systematic, disciplined, quantifiable approach to the development, operation and maintenance of software; that is, the application of engineering to software. systematicdisciplined quantifiable (ii) The study of approaches as in (i). (IEEE 93)

Software Engineering - Introduction 3 By “systematic” we mean: Following a well-defined sequence of activities, - in which desired outputs (deliverables) are well-defined - by using well-defined inputs ( i.e. documented syntax, semantics, context and other relevant properties of the input) - in a well-defined process (e.g. using organizational standards for interprocess communication, data formats, error handling etc.) - whose outputs are in turn used similarly as inputs in subsequent process(es), - until the final output is achieved, - and where the correctness of the output is verifiable. Note: The “inputs” and “outputs” most often refer to requirements, software specifications, the software itself, documentation, test inputs/outputs and similar software artifacts. Back Back

Software Engineering - Introduction 4 By “disciplined” we mean: Each process is followed using organizational principles (e.g. who manages whom, who is responsible for what?), Intermediate results are carefully documented, as well as final results, Actions are traceable as to their causes, individuals involved, time of occurrence and circumstances. Back

Software Engineering - Introduction 5 By “quantifiable” we mean: The size and extent of the required effort (size of output code, data, documentation, manpower, duration, budget for development, expected error rate and user support) are predictable within justifiable and acceptable bounds

Software Engineering - Introduction 6 What SWE is not: Just “programming” or “coding” System engineering (in a broad sense) although software engineers may be called upon to participate in system engineering analyses Software salesmenship although they may be called upon to help analyze customer needs

Software Engineering - Introduction 7 Why Do We Need SWE? To make the production of software easier more disciplined and predictable more economical. Back

Software Engineering - Introduction 8 Evolution of Software Technology Operating systems Languages Development tools Database and networking technology Project management tools

Software Engineering - Introduction 9 Evolution of machine architecture Improvement of machine instruction sets Invention mass storage devices Machine interrupt schemes Much larger physical memories Virtual memory (paging) Cache memory Fault-tolerant computing Parallel and multi-processing

Software Engineering - Introduction 10 Evolution of Systems Interconnection Local area networking (peer-to-peer and hierarchical connection, servers) Wide area networking (dial-up and fixed connections) Networking architecture Communication protocols

Software Engineering - Introduction 11 Database Systems From simple sequential “files” to “databases” Indexed files Hierarchical databases Network-style databases Relational databases More recently, object-oriented databases Database management systems

Software Engineering - Introduction 12 Decreasing Hardware Costs Ever smaller and faster components More reliable Requiring less energy More easily replaceable

Software Engineering - Introduction 13 Increasing Demand Improved user interfaces Cheaper and faster machines Increase in application areas Improved connections Most recently the Internet!

Software Engineering - Introduction 14 Differences between Software Engineering and Hardware Engineering Software is developed or engineered, not manufactured. Software doesn’t wear out (in the usual sense). It is updated or replaced with a new version. Most software tends to be custom-built eventhough there is a movement toward component- based assembly.

Software Engineering - Introduction 15 Hardware Failure Pattern “Bathtub Curve”

Software Engineering - Introduction 16 Software Failure Pattern

Software Engineering - Introduction 17 Examples of Application Areas System software (Operating systems, compilers, databases, graphics packages, communication...) Real-time software Interacts with external events Has tight timing requirements Requires high-security, reliability and availability Often mission-critical (can not be allowed to fail)

Software Engineering - Introduction 18 Application Areas (cont’d) Business Software Ranging from simple to very complex Requiring its own expert knowledge Very large files Needs telecommunication, devices like point-of-sale (POS) terminals Highly organized computer organization and personnel (esp. in large companies) Very detailed records covering long periods

Software Engineering - Introduction 19 Engineering and Scientific Software Complex formula evaluation Very high accuracy Interaction with data collection devices (e.g. Sensors) often at high speeds High resolution graphic displays of large amounts of data Parallel and multi-processor applications

Software Engineering - Introduction 20 Embedded Software Software embedded in non-computer devices (e.g. cars, planes, cell phones, home appliances such as refrigerators) through special-purpose processors Must be resistant to failures, tough climactic conditions, rough handling Often optimized to require least memory and still maintain speed

Software Engineering - Introduction 21 Military Software Often real-time Engineering/scientific Including embedded components High-technology (communications) High security and error control (reliability)

Software Engineering - Introduction 22 Video Game Software Graphic and artistic content Video-type action Very high timing requirements High-sped user interaction Graphics and sound integrated

Software Engineering - Introduction 23 Artificial Intelligence Software Involves: Problem solving, Complex symbolic programming (e.g. pattern recognition, theorem proving, virtual reality concepts, game playing etc.) Physical system control (e.g. Robotic arm-leg movement) Vision, sound/voice recognition...

Software Engineering - Introduction 24 Web-based Applications General public information (news, info about organizations and society) Business-to-consumer communication (product promotions, sales) Business-to-business communication Electronic mail “Surfing” Seach engines

Software Engineering - Introduction 25 QUALITY FOCUS Methods Tools Process Building Blocks of Software Engineering

Software Engineering - Introduction 26 The Generic SWE Approach What is the problem to be solved? -- The most important question of all Do we have sufficient detail ? -- Do we really know what the customer wants? -- Does he agree that that’s what he wants?

Software Engineering - Introduction 27 More questions... How will the solution be realized? How shall we test the solution once it is constructed? How shall we maintain the system and support the users in the short and long terms?

Software Engineering - Introduction 28 The Software Development Process The Software Development Process (also called the Software Process) is the process used to answer the above questions, dealing with: Definition of the problem Analysis of the problem The conception and development of a design Implementation of the design

The Software Development Process (cont’d) Testing Documentation User Training (if required) Maintenance and support Enhancement of the product (if required).

The Software Development Process (cont’d) The sequence and extent of activities needed to carry out the above process varies depending on: How well the user (customer) understands his own needs How well the developers know the application area

Software Process Models31 The Software Development Process (cont’d) Resources available for the project ( time, technology, money, people) The type of project (internal/external, level of secrecy, amount of documentation, user support required etc) The developer organization... And many other factors