CIS 375 Bruce R. Maxim UM-Dearborn

Slides:



Advertisements
Similar presentations
PROCESS FRAMEWORK Lecture - 3. Topics covered PROCESS FRAMEWORK PROCESS MODELS DIFFERENCE.
Advertisements

Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Software Process Models
Chapter 2 The Software Process
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Software Process and Product Metrics
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Software Configuration Management
Chapter : Software Process
Process: A Generic View
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
Chapter 2 The process Process, Methods, and Tools
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
Chapter 2 소프트웨어공학 Software Engineering 임현승 강원대학교
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
Chapter 2 Process: A Generic View
Lecture 1 Introduction to Software Engineering
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Software Engineering Spring (C) Vasudeva VarmaClass of 32 CS3600: Software Engineering: Process and Product* *Most of the Content drawn.
Software Engineering - I
1 Chapter 1 The Product. 2 What is Software?  Pressman Instruction (computer programs) Data Structures Documents  Sommerville Software is computer programs.
Chapter 4 프로세스 모델 Process Models
Process: A Generic View
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Developed by Reneta Barneva, SUNY Fredonia The Process.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Overview: Software and Software Engineering n Software is used by virtually everyone in society. n Software engineers have a moral obligation to build.
These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 6/e and are provided with permission by.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
Software Engineering Introduction.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
PI2134 Software Engineering IT Telkom.  Software definition  Characteristic of software  Software myths  Software Engineering definition  Generic.
CS 281 Intro to Software Engineering Lecture 02 Software Engineering (1)
Software Engineering (CSI 321) Software Process: A Generic View 1.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Advanced Software Engineering Dr. Cheng
Software Configuration Management
Software Project Configuration Management
Software Quality Control and Quality Assurance: Introduction
Lecture 3 Prescriptive Process Models
Software Life Cycle “What happens in the ‘life’ of software”
The Software Development Cycle
SNS College of Engineering Coimbatore
Software Engineering (CSI 321)
IEEE Std 1074: Standard for Software Lifecycle
Chapter 2 Software Engineering
Software Process Models
Software Life Cycle Models
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
Software Configuration Management
Software Engineering (CSE 314)
Introduction to Software Engineering
Chapter 2 Software Engineering
Software life cycle models
Overview: Software and Software Engineering
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Chapter 25 Process and Project Metrics
Software Process Models
CS310 Software Engineering Lecturer Dr.Doaa Sami
What is Software? Software is: (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures.
Rekayasa Perangkat Lunak
CIS 375 Bruce R. Maxim UM-Dearborn
Chapter 32 Process and Project Metrics
Chapter 2 Software Engineering
The Software Development Cycle
Presentation transcript:

CIS 375 Bruce R. Maxim UM-Dearborn Software Engineering CIS 375 Bruce R. Maxim UM-Dearborn 12/7/2018

What is CIS 375 about? Project Management Process Improvement Object Oriented Analysis Object Oriented Design User Interface Design Testing and Validation 12/7/2018

Why is software engineering important? To avoid costly errors caused by software: Lost Voyager Spacecraft (one bad line of code caused failure) 3 Mile Island (poor user interface design) Several people killed by a radiation machine (no means of catching operator errors) Affordable Care Web Site (poor user interface and non-existent testing) 12/7/2018

Software Crisis Software failures receive a lot more publicity than software engineering success stories. The software crisis predicted thirty years ago has never materialized and software engineering successes now outnumber the failures. The problems that afflict software development are more likely to be associated with how to develop and support software properly, than with simply building software that functions correctly. 12/7/2018

Historical Project Cost Allocation 12/7/2018

Early Error Detection Saves Money 12/7/2018

Software Characteristics Software is both a product and a vehicle for developing a product. Software is engineered not manufactured. Software does not wear out, but it does deteriorate. Most software is still custom-built. 12/7/2018

Software Designer Characteristics Studies have found that many designers tend to suffer from the “not invented here” syndrome 80% of most software errors can be discovered by peer review (proof reading) the code or document 12/7/2018

Software Myths – Part 1 Software standards provide software engineers with all the guidance they need. People with modern computers have all the software development tools they need Adding people is a good way to catch up when a project is behind schedule. Giving software projects to outside parties to develop solves software project management problems. 12/7/2018

Software Myths – Part 2 A general statement of objectives from the customer is all that is needed to begin a software project. Project requirements change continually and change is easy to accommodate in the software design. Once a program is written, the software engineer's work is finished. 12/7/2018

Software Myths – Part 3 There is no way to assess the quality of a piece of software until it is actually running on some machine. The only deliverable from a successful software project is the working program. Software engineering is all about the creation of large and unnecessary documentation not shorter development times or reduced costs. 12/7/2018

Software Engineering A strategy for producing high quality software. Software engineering encompasses a process, management techniques, technical methods, and the use of tools. 12/7/2018

What is high quality software? It must be useful (to the original customer). It must be portable (work at all of the customer’s sites). It must be maintainable. It must be reliable. It must have integrity (produces correct results, with a high degree of accuracy). 12/7/2018

What is high quality software? It must be efficient. It must have consistency of function (it does what the user would, reasonably expect it to do). It must be accessible (to the user). It must have good human engineering (easy to learn and easy to use). 12/7/2018

Software Engineering Phases Definition phase focuses on what (information engineering, software project planning, requirements analysis). Development phase focuses on how (software design, code generation, software testing). Support phase focuses on change (corrective maintenance, adaptive maintenance, perfective maintenance, preventative maintenance). 12/7/2018

Software Life Cycle Phases Requirements, analysis, and design phase. System design phase. Program design phase. Program implementation phase. Unit testing phase. Integration testing phase. System testing phase. System delivery. Maintenance. 12/7/2018

Umbrella Activities Part 1 Software project tracking and control (allows team to assess progress and take corrective action to maintain schedule) Risk management (assess risks that may affect project outcomes or quality) Software quality assurance (activities required to maintain software quality) Formal technical reviews (assess engineering work products to uncover and remove errors before they propagate to next activity) 12/7/2018

Umbrella Activities Part 2 Measurement (define and collect process, project, and product measures to assist team in delivering software meeting customer needs) Software configuration management (manage effects of change) Reusability management (defines criteria for work product reuse and establish mechanisms to achieve component reuse) Work product preparation and production (activities to create models, documents, logs, forms, lists, etc.) 12/7/2018

Waterfall Model 12/7/2018

Tower Game - Resources The mission of each team is to build a tower as high as possible using only what is placed in front of them. Each team can have 4 members. Material for each group: Two A4-size sheets of construction paper per team. One pair of scissors per team. Two 20-inch strips of clear tape per team. No other materials may be used. 12/7/2018

Tower Game - Rules The team engineering the tallest tower wins a prize. The tower must be freestanding and remain freestanding for at least 60 seconds. The tower cannot be taped to anything for support. You must build to your planned design If you change your design you must start over by revising your plan and get it approved. No testing will be allowed until you have shown your work and have a tower built to ready to test - for 60 seconds free standing    NOTE – You will have no more than 20-minutes if that. 12/7/2018

Why doesn’t this approach work? Was it difficult to get the group to agree on what steps to take? Customers are not capable of describing their needs completely or precisely. Customers and developers like change the specifications as development proceeds 12/7/2018

Prototyping Model 12/7/2018 Quick plan communication Modeling Quick design Construction of prototype Deployment delivery & feedback 12/7/2018

Prototyping in Practice concept definition implementation of a skeletal system user evaluation and concept refinement implementation of refined requirements This continues until times runs out or desired product quality and functionality is acheived 12/7/2018

Airplane Prototype Concept definition: Your team has 8 minutes to build an airplane capable of landing on a table Implement skeletal system: Your team designs its first plane and documents the design steps User evaluation: Test the plane’s ability to fly and land on the table 12/7/2018

Refined Airplane Prototype Evaluate the test results: What would you change about the design document or air plane Implement skeletal system: Your team has 6 minutes to make one or more modifications to the first plane and documents the modified design steps User evaluation: Test each plane modification on the plane’s ability to fly and land on the table 12/7/2018

Throw Away Prototype Evaluate the test results: What would you change about the design document or air plane Implement skeletal system: Your team has 6 minutes to create a different plane and document the modified design steps User evaluation: Test the new plane’s ability to fly and land on the table 12/7/2018

Lessons Learned Was it helpful to record your design on paper before starting construction? Did you use text or drawings? How did you represent the procedural nature of the design (e.g. cuts vs folds)? How were the test results integrated into the new design? Would adding more or different types of materials change your design? How would you test this? Did you expect the first prototype to land properly? 12/7/2018

Spiral Model – Compromise? 12/7/2018

Comparing Process Models Part 1 Overall flow and level of interdependencies among tasks Degree to which work tasks are defined within each framework activity Degree to which work products are identified and required Manner in which quality assurance activities are applied Manner in which project tracking and control activities are applied 12/7/2018

Comparing Process Models – Part 2 Overall degree of detail and rigor of process description Degree to which stakeholders are involved in the project Level of autonomy given to project team Degree to which team organization and roles are prescribed 12/7/2018