Alyce Brady, Kalamazoo College Software Engineering Friday, Week 4.

Slides:



Advertisements
Similar presentations
Black Box Testing Sources: Code Complete, 2 nd Ed., Steve McConnell Software Engineering, 5 th Ed., Roger Pressman Testing Computer Software, 2 nd Ed.,
Advertisements

EEE 243B Applied Computer Programming Software engineering Life cycle and when to test.
Computer Science Department
P5, M1, D1.
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
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.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
CIS-74 Computer Software Quality Assurance Systematic Software Testing Chapter 1: An Overview of the Testing Process.
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Chapter 16: Analysis and Design (a short introduction) ● As engineers in other desciplines do, it necessary for real projects to “analyse” and “design”
Chapter 6: Design of Expert Systems
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
© The McGraw-Hill Companies, 2006 Chapter 9 Software quality.
Software Engineering.
1 Software Testing and Quality Assurance Lecture 15 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Program Testing Nelson Padua-Perez Chau-Wen Tseng Department of Computer Science University of Maryland, College Park.
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.
1 CMSC 132: Object-Oriented Programming II Software Development III Department of Computer Science University of Maryland, College Park.
Building software from reusable components.
CMSC 345, Version 1/03 An Overview of Software Processes Reference: Software Engineering, by Ian Sommerville, 6 th edition, Chapter 3.
New Mexico Computer Science for All Computational Science Investigations (from the Supercomputing Challenge Kickoff 2012) Irene Lee December 9, 2012.
Software Engineering EE323 Y.F. Fung Office: CF605 Consultation hours: Wednesday 6pm-7:30pm.
1 CSE 403 Software Lifecycle Models Reading: Rapid Development Ch. 7, 25 (further reading: Ch. 21, 35, 36, 20) These lecture slides are copyright (C) Marty.
© 2012 IBM Corporation Rational Insight | Back to Basis Series Chao Zhang Unit Testing.
Alyce Brady, Kalamazoo College Engineering = cost-effective solutions to practical problems by applying scientific knowledge in building things in service.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
By: Md Rezaul Huda Reza 5Ps for SE Process Project Product People Problem.
Database Design - Lecture 2
Understand Application Lifecycle Management
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
 Explain the role of a system analyst.  Identify the important parts of SRS document.  Identify the important problems that an organization would face.
The Program Development Cycle
Introduction to Java August 14, 2008 Mrs. C. Furman.
CPSC 2150 August 21, Chapter 1 Object Oriented Software Development This is an introductory course In this chapter we will look at 3 topics Challenges.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
1 C++ Plus Data Structures Nell Dale Chapter 1 Software Engineering Principles Modified from the Slides made by Sylvia Sorkin, Community College of Baltimore.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
CS 5150 Software Engineering Lecture 3 Software Processes 2.
Construction, Testing, Documentation, and Installation Chapters 15 and 16 Info 361: Systems Analysis and Design.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
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.
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
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.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
PROGRAMMING. Computer Programs  A series of instructions to the computer  pre-written/packaged/off-the-shelf, or  custom made  There are 6 steps to.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
Verification vs. Validation Verification: "Are we building the product right?" The software should conform to its specification.The software should conform.
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;
Advanced Software Engineering Dr. Cheng
Chapter3:Software Processes
C++ Plus Data Structures
Quality Management Perfectqaservices.
Chapter 2 SW Process Models
The Object-Oriented Thought Process Chapter 05
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Need for the subject.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Chapter 2. Problem Solving and Software Engineering
Requirements Engineering
Presentation transcript:

Alyce Brady, Kalamazoo College Software Engineering Friday, Week 4

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 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 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 which is documented thoroughly usable in many environments robust in its operations 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 –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 Whirlpool Lifecycle Req. Sys. Spec. Design Code Unit Test Integration

Alyce Brady, Kalamazoo College Levels of Abstraction –Requirements Analysis –System Specification –Design –Implementation (programming)

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 Object Oriented Programming Based on modeling from the real world. It’s a way of thinking about a problem abstractly using real-world concepts, rather than computer concepts. JavaScript is object-based but not completely object-oriented.

Alyce Brady, Kalamazoo College Object-Oriented Organize software as a collection of discrete objects that have both behavior and information. Objects then interact with each other to perform their tasks. Objects have values (or information) and operations (or behaviors).

Alyce Brady, Kalamazoo College Object-Oriented The object values could be name or size. The object operations could be changing or displaying the values. The values and operations are grouped together to make a class.

Alyce Brady, Kalamazoo College Object-oriented Example Class: Car Attributes (or values) –Color –Make –Model Operations: –TurnRight –TurnLeft –Accelerate –Brake –Repair Object - Mike’s car is a new blue, Mazda 626 Car. Mike’s car then has values of color (blue), a make (Mazda), a model (626). Mike’s car then can do operations like TurnLeft, Accelerate, Brake and TurnRight.

Alyce Brady, Kalamazoo College In Class Exercise Design a class that describes a fish. –What attributes would a fish have? –What operations could a fish do? Create a new fish with attributes of its own and design a short series of actions the fish might do.