Lecture 1 Introduction to Software Engineering

Slides:



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

Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
SEP1 - 1 Introduction to Software Engineering Processes SWENET SEP1 Module Developed with support from the National Science Foundation.
Chapter 2 The Software Process
Chapter 2 Process Models
May 14, May 14, 2015May 14, 2015May 14, 2015 Azusa, CA Sheldon X. Liang Ph. D. Software Engineering in CS at APU Azusa Pacific University, Azusa,
CPIS 357 Software Quality & Testing I.Rehab Bahaaddin Ashary Faculty of Computing and Information Technology Information Systems Department Fall 2010.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Developed by Reneta Barneva, SUNY Fredonia The Process.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Capability Maturity Model
Chapter : Software Process
Process: A Generic View
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
Chapter 2 Software Process: A Generic View
Chapter 2 The Process.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
N By: Md Rezaul Huda Reza n
Chapter 2 Process: A Generic View
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.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Chapter 2 Process: A Generic View
Software Engineering - Spring 2003 (C) Vasudeva Varma, IIITHClass of 39 CS3600: Software Engineering: Standards in Process Modeling CMM and PSP.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software process improvement Framework for SPI SPI support groups, maturity and immaturity models Assessment and gap analysis Education and training Selection.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Engineering - I
CS Process Improvement CMM Hans Van Vliet, Software Engineering, Principles and Practice, 3 rd edition, John Wiley & Sons, Chapter 6. W. Humphrey,
CMMI. 1.Initial - The software process is characterized as ad hoc, and occasionally even chaotic. Few processes are defined, and success depends on individual.
Chapter 4 프로세스 모델 Process Models
Process: A Generic View
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
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.
1 Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 7/e Chapter 2.
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.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
1 Chapter 2 A Generic View of Process Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
1 2.1 Software Engineering Software engineering is a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software;
Software Engineering Introduction.
Software Engineering (CSI 321) Software Process: A Generic View 1.
Software Engineering CE 501 Prepared by : Ashwin Raiyani.
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.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View Software Engineering: A Practitioner’s Approach, 6/e Chapter 2.
Advanced Software Engineering Dr. Cheng
Software Engineering (CSI 321)
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Chapter 2 Process: A Generic View
Software Engineering B.E IT Sem-VII
Software Engineering (CSE 314)
Overview: Software and Software Engineering
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering Lecture 16.
Software Engineering I
Capability Maturity Model
Chapter 2 Process Models.
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Capability Maturity Model
Presentation transcript:

Lecture 1 Introduction to Software Engineering

Software Definition Software is: Software is collection of: A product A vehicle for delivering another product Software is collection of: Program Documentation Data Procedure

Software Characteristics Software is engineered, not manufactured Software does not wear out Most software continues to be custom built

Failure Curves for software

Software Myths Myth: If we get behind schedule, add more programmers. Reality: Adding people to a late software project makes it later. Myth: Software Engineering will make us create many and unnecessary documentation. Reality: Software engineering is not about creating documents. It is about creating quality. Better quality leads to reduced rework. Reduced rework results in faster delivery times.

Software Crisis During 1960-1970, most software development faced the following problems: Overdue schedule Exceeding initial budget Inadequate software quality High software maintenance cost

Software Engineering Software engineering is first coined in 1968 at a software conference organized by NATO at Garmisch, Germany as a solution to the software crisis. Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.

Engineering Principles The engineering principles used in software engineering comprises: Analysis Design Implementation Testing

Software Engineering Layers tools methods process model a “quality” focus

Software Engineering Layers (cont.) Tools: Software Tools (Word Processors, Diagramming Tools, Project Tools, Compilers, etc.) Methods: Modeling methods (DFD, ERD, Gantt Chart,etc.) Process: Waterfall, Spiral, Incremental, etc.

Software Engineering Phases Definition Phase (What) Systems Engineering, Project Planning, Requirements Analysis Development Phase (How) Software Design, Code Generation, Software Testing Support Phase (Change) Correction, Adaptation, Enhancement, Prevention

Umbrella Activities Umbrella activities are activities that are applied throughout the software process: Project tracking and control Software Quality Assurance Software Configuration Management Document Preparation and Management

Capability Maturity Model CMM is used to determine an organization’s current state of process maturity Five levels of CMM: Level 1: Initial (Ad Hoc) Level 2: Repeatable (Basic project management) Level 3: Defined (Process standardization) Level 4: Managed (Quantitative Management) Level 5: Optimized (Continuous process improvement)

CMM Level 1: Initial The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends on individual effort.

CMM Level 2: Repeatable Basic Project Management processes are established to track cost, schedule, and functionality.

CMM Level 3: Defined The process is “tailored from the organization’s set of standard processes according to the organization’s tailoring guidelines, and contributes work products, measures, and other process- improvement information to the organizational process assets”.

CMM Level 4: Managed Detailed measures of the software process and product quality are collected.

CMM Level 5: Optimized The process area is adapted and optimized using quantitative means to meet changing customer needs and to continually improve the efficacy of the process area under consideration.

Personal Software Process The Personal Software Process (PSP) emphasizes personal measurement of both the work product that is produced and the resultant quality of work product (Humphrey 1997). The PSP process model defined five framework activities: Planning High-Level Design High-Level Design Review Development Postmortem

Personal Software Process (cont.) PSP stresses the need for each software engineer to identify errors early and, as important, to understand the types of errors that he/she is likely to make. This is accomplished through a rigorous assessment activity performed on all work products produced by the software engineer. PSP can improve the productivity and software quality. However, PSP has not been widely adopted throughout the industry due to human nature and organizational inertia.

Team Software Process (TSP) TSP is an extension of PSP. The goal of TSP is to build a “self-directed” project team that organizes itself to produce high-quality software: Build self-directed teams that plan and track their work, establish goals, and own their processes and plans. Show managers how to coach and motivate their teams. Accelerate software process improvement. Provide improvement guidance to high-maturity organizations. Facilitate university teaching of industrial-grade team skills.

Summary Software Engineering is a discipline that integrates process, methods, and tools for the development of computer software. The Capability Maturity Model Integration (CMMI) is a comprehensive process meta- model that describes the specific goals, practices, and capabilities that should be present in a mature software process. Personal and Team Software process emphasize measurement, planning, and self-direction as key ingredients for a successful software process.

References Pressman, Chapter 1, 2