CS 1120: Computer Science II Software Life Cycle

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.
© 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”
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.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
Vladimir Misic: Design111:43:34 AM Software design.
Testing Workflow In the Unified Process and Agile/Scrum processes.
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.
CS551 - Lecture 5 1 CS551 Lecture 5: Quality Attributes Yugi Lee FH #555 (816)
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.
© 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.
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.
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.
© Chinese University, CSE Dept. Software Engineering / Software Engineering Topic 1: Software Engineering: A Preview Your Name: ____________________.
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
Chapter 2: The Process. What is Process? Software Engineering Process is the glue that holds the technology layers together and enables rational and timely.
Principles of Programming & Software Engineering
TOTAL QUALITY MANAGEMENT
Regression Testing with its types
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Software Engineering (CSI 321)
Rekayasa Perangkat Lunak Part-10
2. OPERATING SYSTEM 2.1 Operating System Function
Rekayasa Perangkat Lunak
The Development Process of Web Applications
C++ Plus Data Structures
SEVERITY & PRIORITY RELATIONSHIP
Software Life Cycle “What happens in the ‘life’ of software”
Introduction SOFTWARE ENGINEERING.
Principles of Programming and Software Engineering
Classical Waterfall Model
Life Cycle Models PPT By :Dr. R. Mall.
Software engineering – 1
Designing Software for Ease of Extension and Contraction
Introduction to Software Engineering
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Rekayasa Perangkat Lunak
PROGRAMMING METHODOLOGY
Software life cycle models
CS 1120: Computer Science II Software Life Cycle
Introduction To software engineering
Chapter 1 Introduction(1.1)
Software Verification, Validation, and Acceptance Testing
Software Maintenance Part1 Introduction. Outlines What Is Software Maintenance Purposes of Maintenance Why We Need It Maintenance Difficilties Some Tips.
Requirements Engineering
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 engineering = production of quality software External quality 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

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

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

Software Life Cycle – A Model

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?

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

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

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

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

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

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

Software Life Cycle Phase 8: Production Distribute software Install it

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

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

Continuing Effort 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

The End