Software Engineering Introduction. Why are you here? …alternatively, why do we think you need to be here? Why a course on software engineering? How is.

Slides:



Advertisements
Similar presentations
PROCESS FRAMEWORK Lecture - 3. Topics covered PROCESS FRAMEWORK PROCESS MODELS DIFFERENCE.
Advertisements

CS487 Software Engineering Omar Aldawud
CS3773 Software Engineering Lecture 01 Introduction.
Slide Set to accompany Web Engineering: A Practitioner’s Approach
Chapter 2 The Software Process
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,
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
CS487 Software Engineering Omar Aldawud
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.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 2 Process: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/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.
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.
1 Software Engineering Muhammad Fahad Khan Software Engineering Muhammad Fahad Khan University Of Engineering.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
Chapter 2 The process Process, Methods, and Tools
Chapter 2 The Process.
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.
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.
Software Engineering CS 421 / SWE 421 Kinga Dobolyi
Chapter 2 Process: A Generic View
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
Coming up: Software Engineering: A Practitioner’s Approach, 6/e Chapter 5 Practice: A Generic View copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Chapter 3 Project Management Concepts
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,
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Web Engineering and Technology Unit I. Categories/Types of Web-Based Systems CategoryExamples Document centricOnline newspapers, manuals InteractiveRegistration.
Software Engineering - I
1 Software Engineering CS 421 / SWE 421 Kinga Dobolyi.
Software Engineering. Introduction Objective To familiarize students to the fundamental concepts, techniques, processes, methods and tools of Software.
Introduction to Software Engineering.  Software Characteristics  Components  Applications  Layered Technologies  Processes  Methods And Tools 
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.
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.
Amit Singh Introduction to Software Engineering. What is Software? The product that software professionals build and then support over the long term.
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;
IS444: Modern tools for applications development Dr. Azeddine Chikh.
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.
PI2134 Software Engineering IT Telkom.  Layered technology  Software Process  Generic Process (by Pressman)  Fundamental activities (by Sommerville)
CS 281 Intro to Software Engineering Lecture 02 Software Engineering (1)
Software Engineering (CSI 321) Software Process: A Generic View 1.
Software Engineering CE 501 Prepared by : Ashwin Raiyani.
The Software Engineering Process Discussion Slides.
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.
Software Project Management Unit 1. Evolving role of software S/w now a days resides in the mobile, mainframes The main role of the s/w is to transform.
Software Life Cycle “What happens in the ‘life’ of software”
Software Engineering (CSI 321)
Chapter 2 Process: A Generic View
Chapter 2 The Process.
Introduction to Software Engineering
Chapter 3 Project Management
CIS 375 Bruce R. Maxim UM-Dearborn
Chapter 2 The Process.
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Presentation transcript:

Software Engineering Introduction

Why are you here? …alternatively, why do we think you need to be here? Why a course on software engineering? How is real-world programming different than what you have been doing so far?

Barry Boehm paper Read it before next class Make sure you study it for the exams Take notes!

What is SE? Software engineering (SE) is a profession “dedicated to designing, implementing, and modifying software so that it is of higher quality, more affordable, maintainable, and faster to build“

What’s wrong with the previous definition? A better definition: “SE is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software” – IEEE – Have you been doing this in your classes so far? Parnas (super famous CS guy) defined software engineering as the “multiperson construction of multiversion software” – Your projects so far were (probably) neither multipurpose nor multiversion

Observations from/after Boehm Maintenance is expensive Name three ways modern SW is different from HW – Size, malleability, wear, novelty Fred Brooks – Accidental versus essential difficulties – No silver bullet; cannot be fixed by tools alone

Software project failure “Most” software projects fail This failure is almost never due to developer incompetence (alone) If we are late, we can just add more people! Who needs requirements; just start coding! Requirements are malleable anyway! And documentation just slows us down! Besides, once we ship, we’re done!

No.

How can SE help? A set of tools and ideas that can increase the likelihood of success

So what are these tools/ideas? (things we will cover this semester) A generic approach – Rigor and formality – Separation of concerns – Modularity – Abstraction – Anticipation of change – Generality – Incrementality

Leading to a Generic Framework (things we will cover this semester) Communication – Heavy collaboration with the customer, other stakeholders and encompasses requirements gathering and related activities Planning – Establish a plan for the work. Technical task to be conducted, risks, needed resources, work products to be created, and a schedule Modeling – Creation of models to allow the customer and the developer to better understand the requirements and design that will achieve those requirements Construction – Combines code generation and testing required to uncover errors in the code Deployment – The software (as a complete entity or partially complete increment) is delivered to the customer who evaluates it and provides feedback.

And the framework is applied This is called the process model The framework activities will always be applied on every project... BUT The tasks (and degree of rigor) for each activity will vary based on: – the type of project – characteristics of the project – common sense judgment; concurrence of the project team

Example Which activities would you spend the most time on for – Space shuttle controller? – Web-based calendar? – Embedded controller in your refrigerator? – Daily fortune text messenger? Framework Activities Communication Communication Planning Planning Modeling Modeling Analysis of requirements Analysis of requirements Design Design Construction Construction Code generation Code generation Testing Testing Deployment Deployment

A basic model: Waterfall Benefit: – Easy to follow Limitation: – Often associated with project failure. Why might that be?

Model types Prescriptive Models (like waterfall): – Want to limit and change – Provide repeatability/consistency – Coordinate teams Agile models – Respond to change – Working software rather than documentation – Individuals and interaction Which would you use for {a large team, a webapp, the space shuttle controller}?

Umbrella activities Software project management Formal technical reviews Software quality assurance Software configuration management Work product preparation and production Reusability management Measurement Risk management