Ivan Marsic Rutgers University

Slides:



Advertisements
Similar presentations
LECTURE 3: Requirements Engineering
Advertisements

Ch 3: Unified Process CSCI 4320: Software Engineering.
10 Software Engineering Foundations of Computer Science ã Cengage Learning.
Software Project Management
CS487 Software Engineering Omar Aldawud
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Ivan Marsic Rutgers University LECTURE 1: Introduction Lecture time: 1 hr. 20 min.
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Software.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Software Cost Estimation.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Chapter 1 Software Engineering. Homework ► Read Section 2.2 (pages 79-98) ► Answer questions: ► 7, 8, 11, 12, & 13 on page 134. ► Answer on paper, hand.
Software Cost Estimation Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
1 CHAPTER 4 LANGUAGE/SOFTWARE Hardware Hardware is the machine itself and its various individual equipment. It includes all mechanical, electronic.
Teaching Teaching Discrete Mathematics and Algorithms & Data Structures Online G.MirkowskaPJIIT.
Introduction CSE 1310 – Introduction to Computers and Programming
INTROSE Introduction to Software Engineering Raymund Sison, PhD College of Computer Studies De La Salle University Software: Definitions,
Technology in Action Chapter 10 Behind the Scenes: Software Programming Copyright © 2014 Pearson Education, Inc. Publishing as Prentice Hall.
Software Waterfall Life Cycle Requirements Construction Design Testing Delivery and Installation Operations and Maintenance Concept Exploration Prototype.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Algorithms and their Applications CS2004 ( ) Dr Stephen Swift 1.2 Introduction to Algorithms.
1 Chapter 5 Software Engineering Practice. 2 What is “Practice”? Practice is a broad array of concepts, principles, methods, and tools that you must consider.
Introduction To System Analysis and Design
Software cost estimation Predicting the resources required for a software development process 1.
Software Engineering Saeed Akhtar The University of Lahore Lecture 6 Originally shared for: mashhoood.webs.com.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 26Slide 1 Software cost estimation l Predicting the resources required for a software development.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Requirements Engineering Requirements Engineering in Agile Methods Lecture-28.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
Introduction CSE 1310 – Introduction to Computers and Programming Vassilis Athitsos University of Texas at Arlington 1.
An Introduction to UML COMS 103 section 4 11 January, 1999.
Software and Software Engineering By bscshelp.com software engineering 1.
Introduction.
Software Testing Introduction.
ICS 3UI - Introduction to Computer Science
Digital Control CSE 421.
What is a CAT? What is a CAT?.
Lecture 3 Prescriptive Process Models
Team Projects Form teams of 5 (± 1?) students
System Design Ashima Wadhwa.
Software Life Cycle “What happens in the ‘life’ of software”
CS 5150 Software Engineering
LECTURE 3: Requirements Engineering
Methodologies By Akinola Soyinka.
Principles of Computing – UFCFA Lecture-1
Introduction to Computer Programming
Introduction CSE 1310 – Introduction to Computers and Programming
Roadmap to Programming work, right, fast KISS
The Rules (and I really mean it!)
Central Processing Unit
Chapter 2 Software Processes
Introduction To System Analysis and Design PART 2
Ivan Marsic Rutgers University
Chapter 1 Introduction(1.1)
Chapter 23 – Project planning
CHAPTER 10 METHODOLOGIES FOR CUSTOM SOFTWARE DEVELOPMENT
Planning Tools.
CS310 Software Engineering Lecturer Dr.Doaa Sami
Software Engineering Practice: A Generic View
Algorithms and Problem Solving
Teaching slides Chapter 13
Software Cost Estimation
Principles of Computing – UFCFA Week 1
2-2 Estimating Size in Ideal Days
LECTURE 3: Requirements Engineering
Presentation transcript:

Ivan Marsic Rutgers University LECTURE 1: Introduction Lecture time: 1 hr. 20 min. Ivan Marsic Rutgers University

Introduction: Software is Complex Complex  complicated Complex = composed of many simple parts related to one another Complicated = not well understood, or explained

Complexity Example: Scheduling Fence Construction Tasks Nailing [ 2 time units for unpainted; 3 time units otherwise ] Painting [ 5 time units for uncut wood; 4 time units otherwise ] Setting posts [ 3 time units ] Cutting wood [ 2 time units ] SOURCE: Goodaire & Parmenter, Discrete Mathematics with Graph Theory, Third Edition, Pearson Prentice Hall, 2006. [ Section 11.5, p. 361 ] Setting posts  Nailing, Painting Cutting  Nailing …shortest possible completion time = ? [  “simple” problem, but hard to solve without a pen and paper ]

The Role of Software Engr. (1) A bridge from customer needs to programming implementation Customer Software Engineering "You cannot solve it, unless you understand it." Programmer First law of software engineering Software engineer is willing to learn the problem domain (problem cannot be solved without understanding it first)

The Role of Software Engr. (2)

Example: ATM Machine Understanding the money-machine problem:

How ATM Machine Might Work Domain model created with help of domain expert

Cartoon Strip: How ATM Machine Works

Second Law of Software Engineering Software should be written for people first ( Computers run software, but hardware quickly becomes outdated ) Useful + good software lives long To nurture software, people must be able to understand it

Software Development Methods Method = work strategy The Feynman Problem-Solving Algorithm: (i) Write down the problem (ii) think very hard, and (iii) write down the answer. Waterfall Unidirectional, finish this step before moving to the next Iterative + Incremental Develop increment of functionality, repeat in a feedback loop Agile User feedback essential; feedback loops on several levels of granularity

Waterfall Method Unidirectional, no way back finish this step before moving to the next

UML – Language of Symbols UML = Unified Modeling Language Online information: http://www.uml.org

Understanding the Problem Domain System to be developed Actors Agents external to the system Concepts/ Objects Agents working inside the system Use Cases Scenarios for using the system

ATM: Gallery of Players Actors (Easy to identify because they are visible!)

Gallery of Workers + Things Concepts (Hard to identify because they are invisible/imaginary!)

Use Case: Withdraw Cash

Software Measurement What to measure? Project (developer’s work), for budgeting and scheduling Product, for quality assessment

Formal hedge pruning

Sizing the Problem (1) Step 1: Divide the problem into small & similar parts Step 2: Estimate relative sizes of all parts Size(  ) = 4 Size(  ) = 7 Size(  ) = 10 Size(  ) = 3 Size(  ) = 4 Size(  ) = 2 Size(  ) = 4 Size(  ) = 7

Total size =  points-for-section i (i = 1..N) Sizing the Problem (2) Step 3: Estimate the size of the total work Total size =  points-for-section i (i = 1..N) Step 4: Estimate speed of work (velocity) Step 5: Estimate the work duration Travel duration = Path size Travel velocity

Sizing the Problem (3) Advantages: Velocity estimate may need to be adjusted (based on observed progress) However, the total duration can be computed quickly (provided that the relative size estimates of parts are accurate – easier to achieve if the parts are small and similar-size)

Exponential Cost of Estimation Estimation cost Estimation accuracy 100% Improving accuracy of estimation beyond a certain point requires huge cost and effort (known as the law of diminishing returns) In the beginning of the curve, a modest effort investment yields huge gains in accuracy

Estimation Error Over Time Barry Boehm, Software Engineering Economics, Prentice-Hall, 1991. Requirements Design Implementation Start Completion Time The cone of uncertainty starts high and narrows down to zero as the project approaches completion.

Agile Project Effort Estimation

Measuring Quality of Work

translated into propositions Concept Maps Useful tool for problem domain description SENTENCE: “My friend is coding a new program” translated into propositions Proposition Concept Relation 1. I have friend 2. engages in coding 3. constructs a program 4. is new Search the Web for Concept Maps

Case Study: Home Access Control Objective: Design an electronic system for: Home access control Locks and lighting operation Intrusion detection and warning

Case Study – More Details

Concept Map for Home Access Control