Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.

Slides:



Advertisements
Similar presentations
Software Quality Assurance Plan
Advertisements

Ch 3: Unified Process CSCI 4320: Software Engineering.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Karolina Muszyńska Based on
Software Testing and Quality Assurance
Unit 231 Software Engineering Introduction to SWE What is SDLC Phases of SDLC.
Unit 241 Integration Phase  The objective of this section is to introduce how the software product is realized from a set of programs, program units or.
Unit 251 Implementation and Integration Implementation Unit Testing Integration Integration Approaches.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
School of Computing, Dublin Institute of Technology.
Unit 191 Introduction to Software Engineering The objective of this section is to introduce the subject of software engineering. When you have read this.
Illinois Institute of Technology
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
Slide 1.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
SE 555 – Software Requirements & Specifications Introduction
Karolina Muszyńska Based on
Software Lifecycle Software Lifecycle Basics Lifecycle Models Methods and Tools.
Software Quality Assurance
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's.
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Introduction to Software Engineering CEN 4010.
CCSB223/SAD/CHAPTER141 Chapter 14 Implementing and Maintaining the System.
1 Building and Maintaining Information Systems. 2 Opening Case: Yahoo! Store Allows small businesses to create their own online store – No programming.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
Slide 1.1 CHAPTER 1 INTRODUCTION TO SOFTWARE ENGINEERING.
Based on D. Galin, and R. Patton.  According to D. Galin  Software quality assurance is:  A systematic, planned set of actions necessary to provide.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Instructor: Peter Clarke
1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Engineering Introduction and Overview Takes customer-defined goals and constraints and derives a representation of function, performance, interfaces,
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
CS451 - Lecture 3 1 CS451 Lecture 3: Software Lifecycle and Product Yugi Lee STB #555 (816) * Acknowledgement:
Testing -- Part II. Testing The role of testing is to: w Locate errors that can then be fixed to produce a more reliable product w Design tests that systematically.
Slide 2.1 CHAPTER 2 THE SOFTWARE PROCESS. Slide 2.2 Overview l Client, Developer, and User l Requirements Phase l Specification Phase l Design Phase l.
1 The Scope of Software Engineering Xiaojun Qi. 2 Software Engineering Software engineering is a discipline whose aim is the production of fault-free.
1.1/46 Scope Of Software Engineering 1.2/46 Prologue… ‘Have you any idea what happened to our computers! Pay $0.00 bill, …, Pay the $0.00 bill within.
Chapter 3: Software Project Management Metrics
CMSC 345 Fall 2000 Requirements Overview. Work with customers to elicit requirements by asking questions, demonstrating similar systems, developing prototypes,
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.
Software Life Cycle The software life cycle is the sequence of activities that occur during software development and maintenance.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
1 Quality Attributes of Requirements Documents Lecture # 25.
Software Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Dr. DEVENDRA TAYAL– THE SCOPE OF SOFTWARE ENGINEERING.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
Software Engineering1  Verification: The software should conform to its specification  Validation: The software should do what the user really requires.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Object-Oriented and Classical Software Engineering Seventh Edition, WCB/McGraw-Hill, 2007 Stephen R. Schach
HNDIT23082 Lecture 09:Software Testing. Validations and Verification Validation and verification ( V & V ) is the name given to the checking and analysis.
CS3320-Chap21 Office Hours TR 1:00-2:15 PM W 2:30-3:30 PM By appointment.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
Software Production ( ) Lecture 3: Dr. Samer Odeh Hanna (PhD) office: 318.
Testing Overview Software Reliability Techniques Testing Concepts CEN 4010 Class 24 – 11/17.
Requirement Elicitation Review – Class 8 Functional Requirements Nonfunctional Requirements Software Requirements document Requirements Validation and.
CS646: Software Design and Architectures Introduction and Overview †  Definitions.  The general design process.  A context for design: the waterfall.
 System Requirement Specification and System Planning.
MANAGEMENT INFORMATION SYSTEM
Advanced Software Engineering Dr. Cheng
Software Verification and Validation
Software Quality Assurance Software Quality Factor
IEEE Std 1074: Standard for Software Lifecycle
Lecture 09:Software Testing
System Analysis and Design:
Presented by KARRI GOVINDA RAO ,
Presentation transcript:

Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun Differences between software engineering and civil engineering –Frequency of failure ( Fault Tolerance) –Attitudes toward failure –discrete v.s. continuous (state explosion) –maintenance June 5, 2000

Economic Aspects Issues to be considered in selecting the most economic coding technique –Training cost –Project staff learning curve –Long-term maintenance consequence

Maintenance Aspects Includes all changes to the product once the client has agreed that it satisfies the specification document. Figure 1.2 Maintenance is classified into two major types: corrective maintenance and enhancement (perfective maintenance and adaptive maintenance) The breakdown of maintenance effort (time) –Corrective maintenance: 17.5% –Perfective maintenance: 60.5% –Adaptive maintenance: 18% Preventive maintenance (or software reengineering): Changes made to computer programs so that they can be more easily corrected, adapted, and enhanced (Pressman, 1997)

Specification and Design Aspects Figures 1.4 and 1.5 Distribution of software faults among software life-cycle phases –Specification: 1.9 faults/page –Design: 0.9 faults/page –Code: 0.3 faults/page The earlier we correct a software fault, the better Techniques for requirements specifications and design are critical

Team Programming Aspects Interface problems among code components Communications problems among team members Software Engineering is a discipline whose aim is the production of fault-free software that is delivered on time, within budget, and satisfied the user’s needs.

The Object-Oriented Paradigm Structured paradigm: structured systems analysis, structured design, structured programming, and structured testing Problems of the structured paradigm: (1) unable to scale up; (2) maintenance problems The differences between the structured paradigm and the OO paradigm The advantages of the OO paradigm from the perspective of software maintenance Regression fault. A fault inadvertently introduced into one part of a product as a consequence of making an apparently unrelated change to another part of the product. Figure 1.6

Terminology Program: an autonomous piece of code Product: an nontrivial piece of software System: hardware-software combination Software production: (1) software development, and (2) software maintenance Methodology: a collection of techniques Paradigm: a model or a pattern Both methodology and paradigm refer to “a collection of techniques” in the text An object includes attributes and methods

The Software Process Requirements Specification Design Implementation Integration Maintenance Retirement

Testing Verification validation

Preliminary Definition Client Developers software Development Internal Software Contract Software User

Requirements Phase Determine exactly what the client needs –The functionality of the product and the constraints (cost, deadline, reliability, usability, and so forth) This preliminary investigation is sometimes called concept exploration. Rapid prototyping –Build a quick design that focuses on a representation of those aspects of the software that will be visible to the client, e.g., input approaches and output formats Requirements phase testing –The software quality assurance (SQA) group verifies with the client that final version of the rapid prototype is totally satisfactory

Specification Phase Describes the functionality of the product and lists any constraints that the product must satisfy. Precisely what the product is supposed to do. Potential problems of the specifications: ambiguous, incompleteness, contradictory (inconsistent) Estimation and planning follows The software project management plan (SPMP) Specification phase testing –Look for ambiguities, incompleteness, and contradictions of the specifications –Specifications review (SQA group, the client, and the specification team) –Traceability: It is possible to trace every statement in the specification document back to a statement made by the client team during the requirements phase

Design Phase Determine how the product is to be built (i.e., a solution to the problem to be solved) –Decide on the internal structure of the product (decomposition into modules with well-defined interfaces) –Design algorithms and select data structures –Output of the design phase: architectural design and detailed design –Record the design decisions Design phase testing –Checking whether the design agrees with the specification document and whether the specifications are reflected in some part of the design –Design review: design team and SQA group (the client is usually not involved) –Focuses on logic faults, interface faults, exception handling, and conformance to the specifications

Implementation Phase The component modules of the design are coded (implemented) Test cases are documented: expected results and actual output Implementation phase testing –The modules are tested while they are implemented (desk checking) Code review (code inspection)

Integration Phase Combine the modules and determine whether the product as a whole functions correctly Integration phase testing –Top-down or bottom-up integration testing –Integration testing focuses on testing the module interfaces (number, order, and type of the arguments) Product testing –The product as a whole is checked against the specifications (functionality and constraints) –Check whether the source code and all other types of documentation are complete and internally consistent

Integration Phase (2) Acceptance testing –The software is delivered to the client, who tests the software on the actual hardware, using actual data as opposed to test data –Alpha testing: Conducted at the developer’s site by the client –Beta testing: Conducted at one or more client sites by the user(s) of the product

Maintenance Phase Any changes made after the product has been accepted by the client Maintenance is an integral part of the software process and should be taken into consideration throughout the entire development process Maintenance phase testing –The required changes have been correctly implemented –No other inadvertent changes were made (regression testing)

Retirement Reasons of the retirement of a software product –No more cost effective –Increased interdependencies –Documentation not adequately maintained –New hardware/environment –Others