Alyce Brady, Kalamazoo College Engineering = cost-effective solutions to practical problems by applying scientific knowledge in building things in service.

Slides:



Advertisements
Similar presentations
EEE 243B Applied Computer Programming Software engineering Life cycle and when to test.
Advertisements

Object-Oriented Software Development CS 3331 Fall 2009.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Software Project Management
Lifecycle models For more info on these models – see text
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
SOFTWARE MAINTENANCE 24 March 2013 William W. McMillan.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
Software Engineering COMP 201
Slide 1.1 Copyright © 2004 by The McGraw-Hill Companies, Inc. All rights reserved. An Introduction to Object-Oriented Systems Analysis and Design with.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Engineering.
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
CS 425/625 Software Engineering Software Processes
Software Development Overview CPSC 315 – Programming Studio Spring 2009.
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
© Copyright Eliyahu Brutman Programming Techniques Course.
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
CS351 - Software Engineering (AY2005)1 What is software engineering? Software engineering is an engineering discipline which is concerned with all aspects.
Software Development Overview CPSC 315 – Programming Studio Spring 2008.
CSC230 Software Design (Engineering)
Data Structures and Programming.  John Edgar2.
Introduction. Classes: Tuesdays & Thursdays 8:30 – 10:00 am Groups: We will work in a group of 3 Sessions will be highly interactive! Prior learning is.
Software Engineering EE323 Y.F. Fung Office: CF605 Consultation hours: Wednesday 6pm-7:30pm.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
CS CS 5150 Software Engineering Lecture 3 Software Processes 2.
The Program Development Cycle
Software Life Cycle Models. Waterfall Model  The Waterfall Model is the earliest method of structured system development.  The original waterfall model.
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 Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Top-Down Design and Modular Development. The process of developing methods for objects is mostly a process of developing algorithms; each method is an.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Data Structures Using C++1 Chapter 1 Software Engineering Principles and C++ Classes.
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
COM606 Software Process Engineering and on the Portal Introduction.
Alyce Brady, Kalamazoo College Software Engineering Friday, Week 4.
Software Development Life Cycle by A.Surasit Samaisut Copyrights : All Rights Reserved.
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
Software Waterfall Life Cycle
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Data Structures Using C++ 2E
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
1/3/2016  1998-Present Fayad KSU – SWE Process and Modeling Software Process and Modeling Dr. M.E. Fayad, Professor Software Engineering Department, Room.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
SOFTWARE PROCESS MODELING Benjamin Dixon U
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Design and implementation Chapter 7 – Lecture 1. Design and implementation Software design and implementation is the stage in the software engineering.
Software Engineering Introduction Slide 1 Software Engineering Introduction.
CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall.
Software Design and Development Development Methodoligies Computing Science.
1 slc5 TTYP – C++ revisited 1 Which of the following statements are reasonable after the following statement: char* fred = new char[5]; a. fred = bill;
CS 310 Ch 4: Software Processes Software process: a set of activities that lead to a software system specification design and implementation validation.
Advanced Software Engineering Dr. Cheng
Lecture 3 Prescriptive Process Models
HCI in the software process
Practical Software Engineering
HCI in the software process
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 2. Problem Solving and Software Engineering
Human Computer Interaction Lecture 14 HCI in Software Process
Requirements Engineering
Presentation transcript:

Alyce Brady, Kalamazoo College Engineering = cost-effective solutions to practical problems by applying scientific knowledge in building things in service of mankind Science Production Engineering Commercial Craft Mary Shaw, Carnegie Mellon University

Alyce Brady, Kalamazoo College Evolution of Software Engineering Single-person projects: “Back of the envelope” design followed by coding, debugging Multiple-person projects: More formal design, identify modules, code modules, group debugging of whole project

Alyce Brady, Kalamazoo College CS and Software Engineering Shari Lawrence Pfleeger, Software Engineering: Theory & Practice Computer ScienceCustomer Theories Computer Functions Problem Software Engineering Tools and Techniques to Sove Problem

Alyce Brady, Kalamazoo College Goals of Software Engineering Improved quality: –formal design (e.g., structured or object-oriented design) –identify modules –develop a test plan based on the design –code modules –develop test plan of individual module based on code –test modules in isolation –test integrated whole

Alyce Brady, Kalamazoo College Why Are All These Steps Necessary? Writing a program is much easier than writing a programming system, which is much easier than writing a programming system product. documented thoroughly usable in many environments operations are robust F. Brooks estimated that each is at least 3 times more expensive than the previous.

Alyce Brady, Kalamazoo College Why Software Engineering? Barry Boehm has estimated that specification errors repaired in later stages of software development can cost as much as 100 times more to fix than if caught at specification time.

Alyce Brady, Kalamazoo College Evolution of Software Engineering Software Lifecycle –Requirements Analysis –System Specification –Design –Implementation (programming) –Unit Testing –Integration Testing, System Testing –System Delivery (Acceptance Testing, Training) –Maintenance (fixing problems, adding enhancements)

Alyce Brady, Kalamazoo College Waterfall Lifecycle Requirements System Spec. Design Code, Unit Test Integration Test

Alyce Brady, Kalamazoo College “Over-the-Wall” Lifecycle Implementation Unit Testing Integration Requirements System Spec. Design

Alyce Brady, Kalamazoo College Modified Waterfall Lifecycle Requirements System Spec. Design Code, Unit Test Integration Test

Alyce Brady, Kalamazoo College Whirpool Lifecycle Req. Sys. Spec. Design Code Unit Test Integration

Alyce Brady, Kalamazoo College Levels of Abstraction –Requirements Analysis –System Specification –Design –Implementation (programming) –Unit Testing –Integration Testing –Maintenance (fixing problems, adding enhancements)

Alyce Brady, Kalamazoo College Types of Testing “Black box” testing –based on Requirements Analysis, System Specification –test plan developed before design; run as part of integration testing “Gray box” testing –based on Detailed Design –test plan developed before implementation; run as part of integration testing (some may be part of unit testing) “White box” testing –based on Implementation (code) –unit testing

Alyce Brady, Kalamazoo College Levels of Abstraction –Requirements Analysis –System Specification –Design –Implementation (programming) –Unit Testing –Integration Testing –Maintenance (fixing problems, adding enhancements)

Alyce Brady, Kalamazoo College Unit Testing yes no yes no A? B? Do X Do Y Do Z

Alyce Brady, Kalamazoo College Traditional Analysis and Design Methodologies –Thorough Analysis and Design Processes –Thoroughly Document Analysis and Design –Structured Analysis and Design Graphical notations showing data flow and function hierarchies –Object-Oriented Analysis and Design Graphical notations showing encapsulated data, object interactions, and class hierarchies, e.g., UML

Alyce Brady, Kalamazoo College Agile Methodologies –Agile Methods React quickly and flexibly to changes in requirements Less time spent separately doing analysis and design Less documentation of analysis and design