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

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.
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.
3-1 © Prentice Hall, 2004 Chapter 3: Managing the Object-Oriented Information Systems Project Object-Oriented Systems Analysis and Design Joey F. George,
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Bernd Bruegge & Allen H. Dutoit Object-Oriented Software Engineering: Using UML, Patterns, and Java 1 Example of a Problem Statement: Introduction into.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Introduction to Computer Programming I CSE 113
Assignment I, part 1. Groups of three students. Specify one as group leader. group names to TA and me. Create an object-oriented conceptualization.
CS3773 Software Engineering Lecture 03 UML Use Cases.
Introduction To System Analysis and Design
Programming System development life cycle Life cycle of a program
Algorithms and Problem Solving-1 Algorithms and Problem Solving.
Software Engineering. How many lines of code? Average CS1004 assignment: 200 lines Average CS4115 project: 5000 lines Corporate e-commerce project: 80,000.
Software Engineering.
Algorithms and Problem Solving. Learn about problem solving skills Explore the algorithmic approach for problem solving Learn about algorithm development.
Software Engineering About the Course Software Engineering Qutaibah Malluhi Computer Science and Engineering Department Qatar University.
IS 421 Information Systems Management James Nowotarski 16 September 2002.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
CS 501: Software Engineering
Introduction to Software Engineering Dr. Basem Alkazemi
Marcelo Santos – OOAD-CDT309, Spring 2008, IDE-MdH Object-Oriented Analysis and Design - CDT309 Period 4, Spring 2008 Introduction.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 5 Slide 1 Review 1.
UFCEPM-15-M Object-oriented Design and Programming Jin Sa.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Introduction to Information System Development.
Writing a Software Project Proposal
Issues in Teaching Software Engineering Virendra C. Bhavsar Professor and Director, Advanced Computational Research Laboratory Faculty of Computer Science.
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
Introduction CSE 1310 – Introduction to Computers and Programming
Conquering Complex and Changing Systems Object-Oriented Software Engineering Chapter 1, Introduction to Software Engineering.
Sheng Bin Shanghai Jiao Tong University
Using UML, Patterns, and Java Object-Oriented Software Engineering Chapter 1: Introduction.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Chapter 1 Object-Oriented Analysis and Design. Disclaimer Slides come from a variety of sources: –Craig Larman-developed slides; author of this classic.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 7: Focusing on Users and Their Tasks.
Introduction To System Analysis and Design
1 Systems Analysis and Design in a Changing World, Thursday, January 18, 2007.
Computers Are Your Future Tenth Edition Chapter 13: Systems Analysis & Design Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall1.
Software Production ( ) First Semester 2011/2012 Dr. Samer Odeh Hanna (PhD)
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Data Structures and Algorithms Dr. Tehseen Zia Assistant Professor Dept. Computer Science and IT University of Sargodha Lecture 1.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
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.
Lecture 14 22/10/15. The Object-Oriented Analysis and Design  Process of progressively developing representation of a system component (or object) through.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
CSCI 383 Object-Oriented Programming & Design Lecture 7 Martin van Bommel.
INTRODUCTION TO SYSTEM ANALYSIS AND DESIGN 1. WHAT IS AN INFORMATION SYSTEM? An information system is a collection of interrelated components that collect,
An Introduction to UML COMS 103 section 4 11 January, 1999.
Component 1.6.
Ivan Marsic Rutgers University
Team Projects Form teams of 5 (± 1?) students
Fundamentals of Information Systems, Sixth Edition
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Example of a Problem Statement: Introduction into ARENA
CS 5150 Software Engineering
LECTURE 3: Requirements Engineering
The Rules (and I really mean it!)
Ivan Marsic Rutgers University
Chapter 1, Introduction to Software Engineering
Software Design Lecture : 15.
Teaching slides Chapter 13
LECTURE 3: Requirements Engineering
Presentation transcript:

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

Course Information Web: Lecture Notes: Textbooks (see more on the course website) –Bruegge & Dutoit: Object-Oriented Software Engineering: Using UML, Patterns and Java, Third Edition, Prentice Hall, | ISBN –Miles & Hamilton: Learning UML 2.0, O’Reilly Media, ISBN: Teaching Assistant: Swapnil Mhaske 2

Team Projects Form teams of 6 (± 1?) students DEADLINE: Friday, January 25, 2013 After that, teams assigned randomly Project Ideas: No more than two (2) groups working on the same project One (1) new project allowed your project idea ASAP, before proposal is due, for feedback 3

Personal Health Monitoring Devices 4 Available budget: $500 To do: 1. Search the Web for devices and apps that you would like to work with 2. the components list with costs+websites

Project Deliverables 5 ItemDue date I t e r a t. #1 1. ProposalProposalJanuary First report (Specification only) Part 1 (Statement of Work & Requirements) Part 2 (Functional Requirements Spec & UI) Full Report #1First report February 12 February 18 February Second report (Design only) Part 1 (Interaction Diagrams) Part 2 (Class Diagram and System Architecture) Full Report #2Second report March 1 March 8 March First demoFirst demoApril 2 ►... I t e r #2 5. Third report (All reports collated)Third reportApril Second demoSecond demoMay 1 ► Electronic Project ArchiveElectronic Project ArchiveMay 3

Team Project Grading 35 pts 26 pts 12 p 100 Team 3 21 p 50 pts 70 Team 2 30 pts 100 Team 1 30 pts 30 pts Earned points Project grade 21 pts Team Project grade Member ID Earned points Adjusted points Normalized points T1T1 100% M 1,1 30 (30/35 * 100) = 86 M 1,2 30 (30/35 * 100) = 86 M 1,3 30 (30/35 * 100) = 86 T2T2 70% M 2,1 21(21 * 0.7) = 14.7(14.7/35 * 100) = 42 M 2,2 50(50 * 0.7) = T3T3 100% M 3,1 21 (19/35 * 100) = 60 M 3,2 12 (12/35 * 100) = 34 M 3, M 3,4 26 (26/35 * 100) = 74

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 Setting posts [ 3 time units ] Cutting wood [ 2 time units ] Painting [ 5 time units for uncut wood; 4 time units otherwise ] Nailing [ 2 time units for unpainted; 3 time units otherwise ] Setting posts  Nailing, Painting Cutting  Nailing …shortest possible completion time = ? 8 [  “simple” problem, but hard to solve without a pen and paper ]

More Complexity Suppose today is Tuesday, November 29 What day will be on January 3? [ To answer, we need to bring the day names and the day numbers into coordination, and for that we may need again a pen and paper ]

The Role of Software Engg. (1) Customer Programmer A bridge from customer needs to programming implementation First law of software engineering Software engineer is willing to learn the problem domain (problem cannot be solved without understanding it first) 10

The Role of Software Engg. (2) 11

Example: ATM Machine Understanding the money-machine problem: 12

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

Cartoon Strip : How ATM Machine Works 14

Software Engineering Blueprints  Specifying software problems and solutions is like cartoon strip writing  Unfortunately, most of us are not artists, so we will use something less exciting: UML symbols  However … 15

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 16

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 17

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

UML – Language of Symbols 19 UML = Unified Modeling Language Online information:

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 20

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

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

Use Case: Withdraw Cash 23

How ATM Machine Works (2) Domain Model (2) Alternative solution

How ATM Machine Works (3) Domain Model (3) Alternative solution Which solution is the best or even feasible?

Rube Goldberg Design 26 Garage door opener

Actual Design 27

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

Formal hedge pruning 29

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

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 33

Estimation Error Over Time Time Estimation error CompletionStart The cone of uncertainty starts high and narrows down to zero as the project approaches completion. RequirementsDesignImplementation

Agile Project Effort Estimation 35

Measuring Quality of Work 36

Concept Maps PropositionConceptRelationConcept 1.Ihavefriend 2.friendengages incoding 3.codingconstructs aprogram 4.programisnew SENTENCE: “My friend is coding a new program” translated into propositions Search the Web for Concept Maps 37 Useful tool for problem domain description

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

Case Study – More Details 39

Know Your Problem Mortise Lock Parts 40

Concept Map for Home Access Control 41

States and Transition Rules lockedunlocked IF validKey THEN unlock IF pushLockButton THEN lock IF timeAfterUnlock ≥ max{ autoLockInterval, holdOpenInterval } THEN lock IF validKey AND holdOpenInterval THEN unlock 42 … what seemed a simple problem, now is becoming complex