CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.

Slides:



Advertisements
Similar presentations
Building Bug-Free O-O Software: An Introduction to Design By Contract A presentation about Design By Contract and the Eiffel software development tool.
Advertisements

Software Quality Assurance Plan
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Object-Oriented Software Construction Bertrand Meyer 2nd ed., Prentice Hall, 1997.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
Quality is about testing early and testing often Joe Apuzzo, Ngozi Nwana, Sweety Varghese Student/Faculty Research Day CSIS Pace University May 6th, 2005.
Chapter 1 Principles of Programming and Software Engineering.
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.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Design, Implementation and Maintenance
Data Structures and Programming.  John Edgar2.
1 L07SoftwareDevelopmentMethod.pptCMSC 104, Version 8/06 Software Development Method Topics l Software Development Life Cycle Reading l Section 1.4 – 1.5.
What is Software Engineering? the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Chapter 2 The process Process, Methods, and Tools
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
CSC-115 Introduction to Computer Programming
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Vladimir Misic: Design111:43:34 AM Software design.
Facts and Fallacies of Software Engineering (Rob Glass) CSE301 University of Sunderland Discussed by Harry R. Erwin, PhD.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
Testing Workflow In the Unified Process and Agile/Scrum processes.
SE: CHAPTER 7 Writing The Program
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
Cohesion and Coupling CS 4311
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Ceg860 (Prasad)L1SQ1 Software Quality Object-Oriented Programming Paradigm.
I Power Higher Computing Software Development The Software Development Process.
Software Engineering Chapter 3 CPSC Pascal Brent M. Dingle Texas A&M University.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Programming Languages and the Programming Process.
SOFTWARE ENGINEERING1 Introduction. SOFTWARE ENGINEERING2 Software Q : If you have to write a 10,000 line program in C to solve a problem, how long will.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
Software Engineering - Abdul Majeed. What is software? Definition of Software Engineering Software Process Generic view of Software Engineering Software.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
© 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.
CSE 303 – Software Design and Architecture
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Fall 2015CISC/CMPE320 - Prof. McLeod1 CISC/CMPE320 Lecture Videos will no longer be posted. Assignment 3 is due Sunday, the 8 th, 7pm. Today: –System Design,
Herriman High Computer Programming 1A Software Development Cycle Things to Know.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
Chapter 2 Principles of Programming and Software Engineering.
What is a software? Computer Software, or just Software, is the collection of computer programs and related data that provide the instructions telling.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
 System Requirement Specification and System Planning.
Why is Design so Difficult? Analysis: Focuses on the application domain Design: Focuses on the solution domain –The solution domain is changing very rapidly.
MANAGEMENT INFORMATION SYSTEM
Principles of Programming & Software Engineering
Regression Testing with its types
Introduction SOFTWARE ENGINEERING.
Principles of Programming and Software Engineering
Designing Software for Ease of Extension and Contraction
Software life cycle models
CS 1120: Computer Science II Software Life Cycle
Software Verification, Validation, and Acceptance Testing
CS 1120: Computer Science II Software Life Cycle
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Presentation transcript:

CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by Prof. L. Lilien) Last updated on 1/10/10

Software Quality Software engineering = production of quality software External quality –May be detected by its users Internal quality –Perceptible only to computer professionals who have access to the actual code What matters is the external quality –But it can only be achieved through internal quality 2

External Quality Criteria Correctness –Perform the exact tasks as specified Robustness –Ability to react appropriately to abnormal conditions Extendibility –Ease of adapting program to changes of specification Reusability –Ability of software components to serve for construction of many different applications 3

External Quality Criteria – Cont. Other Quality Criteria –Security, Compatibility, Portability, Ease of Use, Efficiency, Timeliness (of delivery), … Some Tradeoffs –Security vs. Ease of Use –Efficiency vs. Portability –Timeliness vs. Extendibility 4

Software Life Cycle – A Model 5

Software Life Cycle Phase 1: Specification Answers the question: “What do we build?” Define clearly all aspects of the problem –What is input (valid/invalid) data? –What assumptions are possible? –Are there special cases? –What future enhancements are likely? 6

Software Life Cycle Phase 2: Design Divide into manageable parts – modules –Classes & methods are (some of) the modules in C# –For each module specify: purpose assumptions input output Develop algorithms for each module Look for existing software components –Reuse them Do not reinvent the wheel 7

Software Life Cycle Phase 3: Risk Analysis Attempts to answer “What can go wrong, and how bad can it be?” Predict and manage what risks you can Consider risks to: –timetable, –cost, –human health –… Risks can greatly influence the direction of a project –E.g. reduce software portability 8

Software Life Cycle Phase 4: Verification Answers the question: “Are the algorithms correct?” Some algorithms can be proven correct –By using: assertion: condition at a certain point invariant: condition that is always true 9

Software Life Cycle Phase 5: Coding Translate the algorithms into code –In a particular programming language Coding is a minor phase in the software life cycle –Relatively easy Developing algorithm (to be coded) is typically much more challenging 10

Software Life Cycle Phase 6: Testing Answers the question: “Did we build it correctly?” Try to make the software fail-safe (or fault- tolerant) Develop as many test cases as possible –Typically, as time allows Testing is both a science and an art 11

Software Life Cycle Phase 7: Refining a Solution Add bells and whistles Retest after any changes are made 12

Software Life Cycle Phase 8: Production Distribute software Install it 13

Software Life Cycle Phase 9: Maintenance Performed as long as software in use Activities during maintenance: –Fix previously undiscovered bugs –Add new features –Enhance old features Generally the most costly phase –80% of total cost by some estimates 14

Software Life Cycle During Phases 1-9: Documentation Performed extensively in every phase –Hence “Documentation” is the axis of this “wheel model’ 15 Different people working on each phase of the software life cycle –For all but very small projects Novice programmers usually undervalue documentation

Continuing Effort 16 Next generation software being developed while the previous generation still in use –So Maintenance for Generation N overlapped by development for Generation N+1 Example: –Maintenance for Windows XP overlapped by development for Windows Vista –Maintenance for Windows XP and Windows Vista overlapped by development for Windows 7

17 The End