Effort.vs. Software Product “Quality” Effort Product “Quality” Which curve? - linear? - logarithmic? - exponential?

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

Chapter 10: The Traditional Approach to Design
Systems Development Environment
Software Process Models
1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Information Systems Analysis and Design
Project What is a project A temporary endeavor undertaken to create a unique product, service or result.
Traditional Approach to Design
Chapter 10 The Traditional Approach to Design
Chapter 9: The Traditional Approach to Design Chapter 10 Systems Analysis and Design in a Changing World, 3 rd Edition.
Software Quality Assurance Inspection by Ross Simmerman Software developers follow a method of software quality assurance and try to eliminate bugs prior.
1 Test Planning CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 9, 2007.
System Design and Analysis
SE 555 Software Requirements & Specification Requirements Management.
Lecture 13 Revision IMS Systems Analysis and Design.
Dr. Ralph R. Young Director of Software Engineering PRC, Inc. (703) Fifth IEEE International Symposium on Requirements Engineering.
1 IS 4420 Database Fundamentals Chapter 2: Database Development Process Leon Chen.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Design, Implementation and Maintenance
Personal Software Process Overview CIS 376 Bruce R. Maxim UM-Dearborn.
CSCI ClearQuest 1 Rational ClearQuest Michel Izygon - Jim Helm.
The Design Discipline.
SDLC: System Development Life Cycle Dr. Bilal IS 582 Spring 2006.
Chapter 2 The process Process, Methods, and Tools
Chapter 1: The Object-Oriented Systems Development Environment Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich,
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Chapter 3: Software Maintenance Process Omar Meqdadi SE 3860 Lecture 3 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CEN th Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Software Project Planning.
SDLC: System Development Life Cycle Dr. Dania Bilal IS 582 Spring 2007.
Levels of Software Applications Up to now we have focused on testing techniques at the unit (or program) level. In any medium to large software systems,
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
Most Important Tests (MITs) Most Important Tests is just a method which focuses on the risky and important areas of the system to test –Based on statistical.
10 ITK261 The traditional approach to design Reading: Chapter 10 Oct 9, 11.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
IS Methodologies. Systems Development Life Cycle - SDLC Planning Planning define the system to be developed define the system to be developed Set the.
SYSTEMS ANALYSIS AND DESIGN LIFE CYCLE
GRASP: Designing Objects with Responsibilities
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Systems Analysis and Design in a Changing World, Fourth Edition
Project Management All projects need to be “managed” –Cost (people-effort, tools, education, etc.) –schedule –deliverables and “associated” characteristics.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
1 CMPT 275 High Level Design Phase Modularization.
Software Design: Principles, Process, and Concepts Getting Started with Design.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
System Maintenance Modifications or corrections made to an information system after it has been released to its customers Changing an information system.
Process Asad Ur Rehman Chief Technology Officer Feditec Enterprise.
11 Software Design CSCU 411 Software Engineering.
State of Georgia Release Management Training
Software Test Plan Why do you need a test plan? –Provides a road map –Provides a feasibility check of: Resources/Cost Schedule Goal What is a test plan?
Development Project Management Jim Kowalkowski. Outline Planning and managing software development – Definitions – Organizing schedule and work (overall.
LECTURE 5 Nangwonvuma M/ Byansi D. Components, interfaces and integration Infrastructure, Middleware and Platforms Techniques – Data warehouses, extending.
1 Week 1 Introduction, Writing a Program, Building a System Software Engineering Spring Term 2016 Marymount University School of Business Administration.
Chapter 2- Software Development Process  Product Components  Software Project Staff  Software Development Lifecycle Models.
MANAGEMENT INFORMATION SYSTEM
Software Design.
Introduction to System Analysis and Design
SDLC: System Development Life Cycle
School of Business Administration Writing a Program, Building a System
Maintaining software solutions
Introduction to Software Engineering
Introduction to Systems Analysis and Design Stefano Moshi Memorial University College System Analysis & Design BIT
System Analysis and Design:
Chapter 2: Building a System
Building a “System” Moving from writing a program to building a system. What’s the difference?! Complexity, size, complexity, size complexity Breadth.
Presentation transcript:

Effort.vs. Software Product “Quality” Effort Product “Quality” Which curve? - linear? - logarithmic? - exponential?

Building a “System” Moving from writing a program to building a system. What’s the difference?! –Complexity, size, Complexity, size Complexity Breadth of Complexity Depth of Complexity

Increase of Complexity Everywhere Problem transformation Solution Increase in size & complexity Increase in effort due to size & complexity Increase in size & complexity

Complexity (Breadth) More Functionalities More Features within each functionality More varieties of Interfaces (internal & external) More Users and varieties of users More data, varieties of data, data structures For your assignment 1, what happens if the number of input data increases to 1 trillion and the input numbers themselves are pretty large ?

Complexity (Depth) More Linkages and Connections –Data sharing among the functionalities & logic –Control Passing among functionalities

Examples for in-class Discussion Assignment compute and show the “average” of the read-in numbers “Modified” Assignment show the largest and the smallest of the read-in numbers –Where is the complexity increase? “Further Modified” Assignment show the read- in numbers in a sorted ascending order. –Where is the complexity increase?

Handling Complexities (A) Via “Simplification” –Decomposition of the problem and of the solution –Modularization of solution –Separation of Concerns of problem and of solution –Incrementally resolve problems *** Not “advertised” but a sometimes used technique is: REDUCE the problem

Handling Complexities (B) Via “Improving Technology and Tools” –Database to handle information and structures of information –Programming & Dev. Platforms –Computing Network –Multi-Developer Configuration Management –Modeling techniques of problem and solution –Automated Testing Note: the first time you use these, it will actually be more complex

Handling Complexities (C) Via “Improving Process and Methodologies” –Coordinate multiple and different people performing different tasks –Guidance for overlapping incremental tasks –Guidance for measuring separate artifacts and outcomes Note: first time you put in a process --- it is like the new tool it is more complex.

Example of Size and Complexity Increases Perform task A Perform task B Perform task C Start Stop Start Wait for signal Signal is? ‘a’ ‘b’ other Perform task A Perform task B Perform task C Stop Perform task A2 (a) Simple (b) Increased Size and Complexity

Task Breakdown (Macro) Example (Handling Complexity) Requirements Definition Design Integration & System Test Support & Problem Fixes Code/Unit Test 1. Who performs what task? 2. How is the task completed with what technique or tool? 3. When should which task start and end? 4. Who should coordinate the people and the tasks?

Iterative Process Example (Handling Complexity) Specific Requirements Architecture and High Level Design Specific Requirements Understanding the Broad Problem (Req.) Detail design Code Integration Test / Fix..

Handling the “Details” separately Seemingly “simple” Test/Fix and Integrate steps: –Should there be separate & independent test group? –How should problem be reported and to whom? –How much information must accompany a problem report? –Who decides on the priority of the problem? –How is the problem fix returned? –Should all problems be fixed? –What should we do with non-fixed problem? –How are fixes integrated back to the system? Integration Test / Fix

Some ‘Non-technical’ Considerations for Developing & Supporting a System (requiring more effort, more resources, etc.) Effort & Schedule Expansion –How does one estimate and handle this? Assignment and Communications Expansion? –Do we need some process? –Do we need some tools?

Increase in Amount of Communications as # of People Increases. Also, an increase in the number of communications errors committed 2 people: 1 path 4 people: possibly 6 paths 6 people: increase to potentially 15 paths With the increase in system complexity, there is a corresponding increase in the “manpower” or human resources. For n people, number of potential communications paths = ∑ (n-1) = [nx(n-1)] / 2

A Large, Complex System Building “Mission critical” or “Business critical” system (e.g. payroll - in textbook) requires (1)several separate activities performed by (2)more than 1 person (e.g. 50 ~ 100): –Requirements: gathering, analysis, specification, and agreement –Design: abstraction, decomposition, cohesion, interaction and coupling analysis –Implementation: coding and unit testing –Integration and tracking of pieces and parts –Separate testing: functional testing, component testing, system testing, and performance testing –Packaging and releasing the system

Also, Need to ‘Support’ the “Payroll” System in text (for real production) (often times complex systems are not “perfect” ) Pre-release: preparation for education & support: –Number of expected users –Number of “known problems” and expected quality –Amount of user and support personnel training –number of fix and maintenance cycle Post-release: preparation for user and customer support: –Call center and problem resolutions –Major problem fixes and code changes –Functional modifications and enhancements

Coordination Efforts Required in Systems Development and Support Because there are i) more parts, ii) more developers and iii) more users to consider in “Large Systems” than a single program developed by a single person for a limited number of users, there is the need for Coordination of (3P’s): –‘Processes’ and methodologies to be used –Final ‘product’ and intermediate artifacts –‘People’ (developers, support personnel, and users) The previous diagram on people increase and potential communication paths increase provides a clue to the importance of coordination efforts.

Complexity.vs. Software Product Quality ? Complexity.vs. Software Dev. Effort ? What type of “relationship” can we expect? Complexity Software Product QualitySoftware Development Effort ? ?