What is Software Engineering?

Slides:



Advertisements
Similar presentations
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Advertisements

Ch 3: Unified Process CSCI 4320: Software Engineering.
Software Project Management
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
CSE 470 : Software Engineering The Software Process.
Modeling the Process and Life Cycle CSCI 411 Advanced Database and Project Management Monday, February 2, 2015.
Stepan Potiyenko ISS Sr.SW Developer.
Introduction to Software Engineering Dr. Basem Alkazemi
CS 425/625 Software Engineering Software Processes
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
CHAPTER 19 Building Software.
Software Life Cycle Model
S/W Project Management
Software Project Management
Chapter 2 The process Process, Methods, and Tools
Lecture # 04 & 05 CS314 Introduction To Software Development Software Development Process (SDP) Instructor :Muhammad Janas khan
Software Project Management Introduction to Project Management.
 Software Models.  A software life-cycle model is a descriptive and diagrammatic representation of the software life-cycle. This includes a series of.
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Department of CSE, MIT, Manipal SOFTWARE ENGINEERING By Prakash Kalingrao Aithal.
SDLC – A Brief Introduction
Topic (1)Software Engineering (601321)1 Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution.
Introduction to Interactive Media The Interactive Media Development Process.
Lecture 1 Introduction to Software Engineering
Lecture 31 Introduction to System Development Life Cycle - Part 2.
1 SWE Introduction to Software Engineering Lecture 4.
Methodologies. Contents Waterfall Model Evolutionary Models Incremental Development.
Software Development Life Cycle by A.Surasit Samaisut Copyrights : All Rights Reserved.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Software Engineering (LECT 1)
Developed by Reneta Barneva, SUNY Fredonia The Process.
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.
KUFA UNIVERSITY Department of Computer Science. Fundamentals of Software Engineering Presented By Neamah Hassan Presented By Neamah Hassan.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CC20O7N Software Engineering 1 CC2007N Software Engineering 1 Part 1 Introduction to Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Systems Development Life Cycle
Advanced Software Engineering Dr. Cheng
Software Engineering.
Methodologies and Algorithms
Lecture 3 Prescriptive Process Models
Transforming Organizations
Software Life Cycle “What happens in the ‘life’ of software”
The Systems Engineering Context
Software Engineering (LECT 1)
Systems Analysis and Design
CSE 403 Software Engineering
CS701 SOFTWARE ENGINEERING
CS 425/625 Software Engineering Software Processes
Software Engineering PPT By :Dr. R. Mall.
Classical Waterfall Model
Software Process Models
Life Cycle Models PPT By :Dr. R. Mall.
Models of Software Development Life Cycle (SDLC)
Chapter 2 SW Process Models
Chapter 2: Software Process Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Engineering (CSE 314)
Classical Waterfall Model
Software life cycle models
Software Engineering Lecture #45
Software Engineering I
Capability Maturity Model
Chapter 2: Software Process Models
Capability Maturity Model
Requirements Engineering
Project Management Methods
Presentation transcript:

What is Software Engineering? Engineering approach to develop software. Building Construction Analogy. Systematic collection of past experience: techniques, methodologies, guidelines.

Software Crisis Software products: fail to meet user requirements. frequently crash. expensive. difficult to alter, debug, and enhance. often delivered late. use resources non-optimally.

Factors contributing to the software crisis Larger problems, Lack of adequate training in software engineering, Increasing skill shortage, Low productivity improvements.

Programs versus Software Products Usually small in size Author himself is sole user Single developer Lacks proper user interface Lacks proper documentation Ad hoc development. Large Large number of users Team of developers Well-designed interface Well documented & user-manual prepared Systematic development

Object-Oriented Design (80s) Object-oriented technique: natural objects (such as employees, pay-roll-register, etc.) occurring in a problem are first identified. Relationships among objects: such as composition, reference, and inheritance are determined.

Evolution of Other Software Engineering Techniques life cycle models, specification techniques, project management techniques, testing techniques, debugging techniques, quality assurance techniques, software measurement techniques, CASE tools, etc.

Use of Life Cycle Models Differences between the exploratory style and modern software development practices Use of Life Cycle Models Software is developed through several well-defined stages: requirements analysis and specification, design, coding, testing, etc.

Modern practices emphasize: Differences between the exploratory style and modern software development practices Emphasis has shifted from error correction to error prevention. Modern practices emphasize: detection of errors as close to their point of introduction as possible.

In exploratory style, Now, errors are detected only during testing, Differences between the exploratory style and modern software development practices (CONT.) In exploratory style, errors are detected only during testing, Now, focus is on detecting as many errors as possible in each phase of development.

During all stages of development process: Differences between the exploratory style and modern software development practices (CONT.) During all stages of development process: Periodic reviews are being carried out Software testing has become systematic: standard testing techniques are available.

Projects are being thoroughly planned: Differences between the exploratory style and modern software development practices (CONT.) Projects are being thoroughly planned: estimation, scheduling, monitoring mechanisms. Use of CASE tools.

Life Cycle Model A software life cycle model (or process model): a descriptive and diagrammatic model of software life cycle: identifies all the activities required for product development, establishes a precedence ordering among the different activities, Divides life cycle into phases.

Why Model Life Cycle ? A written description: forms a common understanding of activities among the software developers. helps in identifying inconsistencies, redundancies in the development process.

Processes are tailored for special projects. Why Model Life Cycle ? Processes are tailored for special projects. A documented process model helps to identify where the tailoring is to occur.

Life Cycle Model (CONT.) The development team must identify a suitable life cycle model: and then adhere to it. Primary advantage of adhering to a life cycle model: helps development of software in a systematic and disciplined manner.

Life Cycle Model (CONT.) When a software product is being developed by a team: there must be a precise understanding among team members as to when to do what, otherwise it would lead to and project failure.

Life Cycle Model (CONT.) A life cycle model: defines entry and exit criteria for every phase. A phase is considered to be complete: only when all its exit criteria's are satisfied.

Life Cycle Model (CONT.) The phase exit criteria for the software requirements specification phase: Software Requirements Specification (SRS) document is complete, reviewed, and approved by the customer. A phase can start: only if its phase-entry criteria have been satisfied.

Life Cycle Model (CONT.) It becomes easier for software project managers: to monitor the progress of the project.

Life Cycle Model (CONT.) Many life cycle models have been proposed. We will confine our attention to a few important and commonly used models. classical waterfall model iterative waterfall, evolutionary, prototyping, and spiral model