Software Engineering Overview 23 January. Software Engineering Overview What is engineering? Why is software engineering different than other engineering.

Slides:



Advertisements
Similar presentations
SDLC – Beyond the Waterfall
Advertisements

Diane Pozefsky. Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will start)
Chapter 2 Modeling the Process and Life Cycle Shari L. Pfleeger
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Systems Analysis and Design in a Changing World, 6th Edition
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
29 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
CS 325: Software Engineering January 13, 2015 Introduction Defining Software Engineering SWE vs. CS Software Life-Cycle Software Processes Waterfall Process.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Agile
8 September Announcements  GIT Class: Friday 3-5 SN 115 (Peter Parente)  Information for Project Links PageProject Links Page  Hot Topics Teams.
Part 1: Introducing User Interface Design Chapter 1: Introduction –Why the User Interface Matters –Computers are Ubiquitous –The Importance of Good User.
6 December ’s  60’s “Cowboys” wrote software anyway that they could Difference between best programmers and worst as high as 28:1 (many sources)
20 September Importance of People Most important factor in the quality of software is the quality of the programmers If your life depended on.
30 August Common Mistakes  Over committing (“big eyes”)  Unrealistic schedules Training Access to people or materials Hours in the day  Level.
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
Software Development Overview CPSC 315 – Programming Studio Spring 2009.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
Fundamental of Software Project Management Team Assignment 1 – K15T2 – Team 07.
Agile Testing with Testing Anywhere The road to automation need not be long.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
Fundamentals of ISO.
1 Building and Maintaining Information Systems. 2 Opening Case: Yahoo! Store Allows small businesses to create their own online store – No programming.
Chapter 3 – Agile Software Development 1Chapter 3 Agile software development.
BEFORE AGILE METHODS Other Engineering fields development models were used, ie: Waterfall Method: Intensive planning and refactoring before coding is actually.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Diane Pozefsky. Engineering  Turning ideas into reality  Creating something useful from other things using science and math.
1 Advanced Computer Programming Project Management: Methodologies Copyright © Texas Education Agency, 2013.
3 September Engineering  Turning ideas into reality  Creating something useful from other things using science and math.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
Rapid software development 1. Topics covered Agile methods Extreme programming Rapid application development Software prototyping 2.
Engineering  Turning ideas into reality  Creating something useful from other things using science and math.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
Software Development Overview CPSC 315 – Programming Studio Spring 2013.
WATERFALL DEVELOPMENT MODEL. Waterfall model is LINEAR development lifecycle. This means each phase must be completed before moving onto the next!!! WHAT.
24 January Software Engineering Processes Risk Management.
Yazd University, Electrical and Computer Engineering Department Course Title: Advanced Software Engineering By: Mohammad Ali Zare Chahooki The Project.
1/2/12 Chapt 2 Iterative Evolutionary Agile. 1/2/12 (Rational) Unified Process A software development process – Flexible and open Other processes – XP.
Agile. Processes Waterfall Traditional With prototyping Sprial Agile Dynamic Systems Development Method (DSDM) Scrum Crystal eXtreme Programming (XP)
Agile febrian | erlien | beny | ragnar | billy. SLDC Methodologies.
Waterfall Model Software project Management. Waterfall Model  The Waterfall Model was first Process Model to be introduced. It is also referred to as.
10 key principles of agile software development
17 January Requirements. The Plan Quick Pass on Software Engineering “Just enough” context Start with what you need for your first deliverables Back up.
10 September Interactions  There is no “right answer”  Typically people and product are fixed  … can adapt process  (which is where we will.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Software Development Life Cycle. The Software Life Cycle  Encompasses all activities from initial analysis until end of work  Formal process for software.
Project Management Software development models & methodologies
Software Development.
Software Development Overview
Appendix B Agile Methodologies
COMP 523 Diane pozefsky 24 August 2016.
Methodologies By Akinola Soyinka.
Software Processes (a)
Methodologies in Computing
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Engineering: A Practitioner’s Approach, 7/e Chapter 2 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Lecture 2 Revision of Models of a Software Process
An Overview of Software Processes
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Chapter 8 Software Evolution.
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Appendix B Agile Methodologies
Agile software development
Software Engineering: A Practitioner’s Approach, 6/e Chapter 3 Prescriptive Process Models copyright © 1996, 2001, 2005 R.S. Pressman & Associates, Inc.
Software Development Overview
Presentation transcript:

Software Engineering Overview 23 January

Software Engineering Overview What is engineering? Why is software engineering different than other engineering disciplines? Is software engineering different than computer science? programming? How similar or different are software engineering projects?

Engineering Turning ideas into reality Creating something useful from other things using science and math

Software Engineering vs. Other Engineering Disciplines Maturity Roman aqueducts 2000 years ago Software engineering 50 years ago Startup costs Barriers to entry Rate of change

What’s in a Name? Software engineer Computer scientist Programmer Coder Developer Designer Architect

Different Types of Projects Consider 4 different types of systems COMP 523 projects Productivity suites Commercial web sites Airplane systems Pacemakers How do they differ in criticality? What does that mean for the development process?

Expectations of Software Engineering (Watts Humphrey)Watts Humphrey 1. Predetermine quantitative quality goals 2. Accumulate data for use in later projects 3. Keep all work visible 4. Design, program and test only against requirements 5. Measure and achieve quality goals

Keeping Work Visible: Documentation What will be implemented Customer: contract, requirements, “glossy” User: manuals How it will be implemented Project plan The code The test plan What people will do How you will manage code and documents

Documentation Principles Need to reflect changes Version control Need to keep all documents synchronized Single owner Only say it once

Quality Management Principles Customer focus Leadership Involvement of people Process approach System approach to management Continual improvement Factual approach to decision making Mutually beneficial supplier relationships

Customer Focus Organizations depend on customers Understand needs, requirements, expectations Increases market share Implies Market research Customer understanding throughout the organization Measuring satisfaction

Involvement of People Essence of the organization “Buy in” Two way street Treating people with respect They will take on ownership of responsibility Encourage a collaborative environment

Software Engineering Fundamental Steps Requirements Design Implementation Integration Test (elaborated versions to be covered later)

Processes Differ by how often you do the steps Points on the spectrum Differences in overhead Three fundamental models Waterfall Spiral Iterative

Waterfall Do it once Traditional model Used for large next version releases, especially when tightly coupled changes Pros Simple documentation management Clean design phase Cons Least flexibility No early feedback

Spiral Few iterations Each iteration adds new requirements Used often for projects with less well defined requirements Pros Adaptation to changes based on risks Good customer interaction Early version Limited iterations provide phase structure Cons Document maintenance

Iterative Many iterations Each iteration is on a fixed cycle Typically weekly Used for projects with lots of small independent, but well understood, changes Pros Fast feedback on problems Very adaptable to any changes Lots of versions to work with Cons Document maintenance Code maintenance Requires good automation