Software Engineering CEN 4010 What is Software Engineering Historical Aspects NATO group coined the phrase during a 1968 meeting in Garmisch, Germany (

Slides:



Advertisements
Similar presentations
Using MIS 2e Chapter 10: Managing Development David Kroenke
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Object-Oriented Software Development CS 3331 Fall 2009.
Ch 3 System Development Environment
Chapter 2 The Software Process
Introduction to Software Engineering Lecture 3 André van der Hoek.
Software Life Cycles ECE 417/617: Elements of Software Engineering
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
Software Quality Metrics
Chapter 15 Design, Coding, and Testing. Copyright © 2005 Pearson Addison-Wesley. All rights reserved Design Document The next step in the Software.
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.
Slide 1.1 © The McGraw-Hill Companies, 2002 Object-Oriented and Classical Software Engineering Fifth Edition, WCB/McGraw-Hill, 2002 Stephen R. Schach
1 Lecture 5 Introduction to Software Engineering Overview  What is Software Engineering  Software Engineering Issues  Waterfall Model  Waterfall Model.
Principles of Information Systems, Sixth Edition 1 Systems Investigation and Analysis Chapter 12.
MSIS 110: Introduction to Computers; Instructor: S. Mathiyalakan1 Systems Investigation and Analysis Chapter 12.
Xtreme Programming. Software Life Cycle The activities that take place between the time software program is first conceived and the time it is finally.
SDLC. Information Systems Development Terms SDLC - the development method used by most organizations today for large, complex systems Systems Analysts.
Software Life Cycle Model
Introduction to Computer Technology
Chapter 1 The Systems Development Environment
Software Development Concepts ITEC Software Development Software Development refers to all that is involved between the conception of the desired.
Introduction To System Analysis and design
12 Building and Maintaining Information Systems.
N By: Md Rezaul Huda Reza n
Slide 1.1 CHAPTER 1 INTRODUCTION TO SOFTWARE ENGINEERING.
PROJECT MILESTONES Group Presentations: ~ 5 mins presentations.
1 Scope of Software Engineering Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Lecture 1 Introduction to Software Engineering
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
Software Life-Cycle Models Somnuk Keretho, Assistant Professor Department of Computer Engineering Faculty of Engineering, Kasetsart University
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Software Engineering MCS-2 Lecture # 6
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Engineering II Lecture 3 Fakhar Lodhi. Software Life-Cycle Steps Life-cycle model (formerly, process model) –Requirements phase –Specification.
What is Object-Oriented?  Organization of software as a collection of discreet objects that incorporate both data structure and behavior.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
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.
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.
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Developed by Reneta Barneva, SUNY Fredonia The Process.
Principles of Information Systems, Sixth Edition Systems Investigation and Analysis Chapter 12.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
Software Engineering Lecture # 1.
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 Engineering At Glance. Why We Need Software Engineering? The aim of software engineering is to solve the software crisis Software is delivered.
Software Project Management Iterative Model & Spiral Model.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Introduction Requirements and the Software Lifecycle (3)
Object-Oriented and Classical Software Engineering Eighth Edition, WCB/McGraw-Hill Stephen R. Schach 1.
Advanced Software Engineering Dr. Cheng
Information Systems Development
Chapter 2 Object-Oriented Paradigm Overview
Software Engineering (CSI 321)
Chapter 1: Introduction to Systems Analysis and Design
Business System Development
Principles of Information Systems Eighth Edition
CS4311 Spring 2011 Process Improvement Dr
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Information Systems Development
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Chapter 1: Introduction to Systems Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Software Engineering CEN 4010 What is Software Engineering Historical Aspects NATO group coined the phrase during a 1968 meeting in Garmisch, Germany ( a very pretty place). They believed the development of software should be an engineering discipline to solve what has been termed a “software crisis. The crisis continues. Goals of Software Engineering Software is fault Free (Bugs) Software is delivered on-time Software is delivered within budget Satisfies users needs. Can be maintained and modified with the same properties.

Software Engineering CEN 4010 Different Phases of the Software Life Cycle Requirements Phase: Concept is explored and customers requirements are elicited. Specification (Analysis ) Phase: Requirements are analyzed and a specification document is produced. Customer signs off on specification. Planning Phase: A plan is drawn up. Cost, Schedule, Resources, Risks, Assumptions, etc. Design Phase: Requirements are translated one- to-one to a design of how to solve them. Implementation (Coding) Phase: Do the design. Alpha Test: Internal test with real data. Beta Test: External test with a real customer, usually involves parallel running with old system. Maintenance Phase: First version is released and modifications are coming back, Retirement Phase: System is no longer used or is no longer maintained by a software organization.

Software Engineering CEN 4010 Maintenance 67% Integration 8% Module Coding/Testing 12% Design 6% Planning 1% Specification 4% Requirements 2% Approximate relative costs of the phases of the software life cycle

Software Engineering CEN 4010 Approximate relative cost to detect and correct a fault

Software Engineering CEN 4010 Economic Aspects of Software Engineering Does the resulting system, after development perform one or more of the following functions: Simplify a process Make a process more accurate Decrease the cost of operations Increase productivity Increase the quality of the product Provide a new and useful capability and Eventually through the features above, recoup the cost of the development of the system. Ensure the resulting system does not do the following; Increase maintenance and operation costs Increase work complexity Create work Perform a negative aspect of what a system should do.

Software Engineering CEN 4010 Specification and Design The relative costs of fixing and correcting faults within a system increase at each of the various phases. Why? All phases that have been accomplished to date must be re- accomplished for the fault and all modules affecting the fault. How do you avoid this: Detailed requirements analysis Hire quality and experienced personnel Detailed and documented design reviews Automate the process as much as possible Attention to detail is of the utmost importance.

Software Engineering CEN 4010 Team Programming A single programmer acting as analyst, coder, configuration manager, tester, documentation specialist, and help desk is the most efficient use of a programmer. Almost all commercial products are a result of a team programming effort, however this has it’s own share of problems: Doubling the number of personnel does not double the productivity Each additional person complicates communication requirements Management needed to control resources does not increase productivity, just merely makes sure it is completed. Meetings and conferences use time otherwise would have been dedicated to development and testing.

Software Engineering CEN 4010 Object Oriented Paradigm Consist both of the action and data views A more realistic abstraction of the “Real World” What is it? “ Superficially the term object oriented means that we organize software as s collection of discrete objects that incorporate both data structure and behavior” Four basic aspects of OOP Identity classification polymorphism inheritance

Software Engineering CEN 4010 IDENTITY OF OOP The data is quantified into discrete, distinguishable entities called objects. Examples; Paragraph in document A window on a work station, A white queen on a chess board Each object can be uniquely identified Each object has characteristics An object can be concrete in the physical world sense or conceptual such as a scheduling routine inside a computer.

Software Engineering CEN 4010 CLASSIFICATION OF OOP Objects with the same data structure (attributes) and behavior (operations) are grouped into a class. Paragraphs Windows on a work station Pieces on a chess board Each object is said to be an instance of that class. Each object can be uniquely identified Each object has characteristics An object can be concrete in the physical world sense or conceptual such as a scheduling routine inside a computer.

Software Engineering CEN 4010 POLYMORHPISM OF OOP Means the same operation may behave differently on different classes. Multiplication is different in basic arithmetic then it is in matrix algebra. The move operation is different in Windows and Chess. Adding two records is different then adding two numbers. The point is to use the appropriate operation for the data and scenario.

Software Engineering CEN 4010 Inheritance OF OOP Is the sharing of attributes and operations among classes based on a hierarchical relationship. A class can be defined broadly and then refined into successively finer subclasses. Each subclass incorporates, or inherits, all of the properties of the superclass. Scrolling Window and Fixed Window are all subclasses of Windows and inherit its properties.

Software Engineering CEN 4010

Structured Paradigm Operations - Move_Dot_left - Move_Dot_Right - Move_Dot_Up - Move_Dot-Down

Software Engineering CEN 4010 Operation - Move_Dot( direction) Object Oriented Paradigm This has a few advantages. If we want to create a new direction such as diagonal directions, we do not have to create a new routine for the programmer but allow a new parameter and just modify the basic moves to the class.

Software Engineering CEN 4010 Build 1st Version Modify Until User is satisfied Operations Mode Retirement Build and Fix Model

Software Engineering CEN 4010 Rapid Prototype Verify Specification Verify Planning Verify Design Verify Implementations Test Integration Test Operations Change Requirement Verify The basic Waterfall Model

Software Engineering CEN 4010 Requirements Verify Specification Verify Planning Verify Design Verify Implementations Test Integration Test Operations Change Requirement Verify Rapid Prototype Model

Software Engineering CEN 4010 Requirements Verify Specification Verify Planning Verify Architectural Design Verify Operations Incremental Model For each build: Do a detailed design, implementation, integration, and test Operations Mode Retirement

Software Engineering CEN 4010 Risk Analysis Rapid Prototype Verify Risk Analysis Specification Verify Risk Analysis Planning Verify Risk Analysis Design Verify Risk Analysis Implementation Verify Risk Analysis Integration Verify Operations Retirement Risk Analysis Change Req. Verify

Software Engineering CEN 4010 Capability Maturity Model (CMM) Ref: 1986 by Watts Humphrey of the Software Engineering Institute at Carnegie-Mellon University. The Model incorporates both technical and managerial aspects of software production. CMM Level 1: Lowest level. There are essentially no sound software engineering practices. Success of projects is entirely dependent upon competent staff. Usual pattern is time and cost overruns. Most all organizations fall into this category. CMM Level 2: Basic software management practices are in place. Measurements are used to spot problems and avoid crisis. Planning and management are based upon experience with previous products. (Repeatable processes) CMM Level 3: Software production is fully documented. Management and technical aspects are clearly defined. Training both management and technical staff is of equal importance. CASE tools are used to improve the quality and efficiency. Level 3 is the highest an organization has reached to date.

Software Engineering CEN 4010 Capability Maturity Model (CMM) CMM Level 4: Organizations set quality and productivity goals for each product. The two quantities are continually measured and corrective action taken. A simple example of statistical quality is the number of faults per 1000 lines of code. The goal is to continually reduce this. CMM Level 5: The highest level means there are controls in place to have continuous process improvement. The knowledge gained from each product is used in all future products. The process thus incorporates a positive feedback loop, resulting in a steady improvement in productivity and quality over time. Chart from Schach Page 75 CMM Level Months Man Months Faults Faults Cost Found left , $5,440K $1,311K $ 728K $ 392K $ 146K