Software Engineering of Standalone Programs Prof. Ruth Dameron, Course web site with course materials is under WebCT – Need an identikey.

Slides:



Advertisements
Similar presentations
Unified process(UP) UP is an OO system development methodology offered by Rational(Rational Rose) s/w, now a part of IBM Developed by Booach,Rambaugh,Jacobson--
Advertisements

Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CS3773 Software Engineering Lecture 01 Introduction.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
“Not Fully Specified (Project) Objectives” CS524 – Software Engineering I Azusa Pacific University Professor Dr. Sheldon X. Liang Fall I 2007 Ernie Rosales.
Introduction to Requirements (Chapters 1-3 of the requirements text) CSSE 371, Software Requirements and Specification Don Bagert, Rose-Hulman Institute.
1 SOFTWARE LIFE-CYCLES Beyond the Waterfall. 2 Requirements System Design Detailed Design Implementation Installation & Testing Maintenance The WATERFALL.
School of Computing, Dublin Institute of Technology.
Introduction to Software Engineering Dr. Basem Alkazemi
Requirements - Why What and How? Sriram Mohan. Outline Why ? What ? How ?
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.
Software Engineering General Project Management Software Requirements
Software Engineering CSE470: Requirements Analysis 1 Requirements Analysis Defining the WHAT.
Iterative development and The Unified process
SE 555 – Software Requirements & Specifications Introduction
4. 2Object-Oriented Analysis and Design with the Unified Process Objectives  Explain the elements of project management and the responsibilities of a.
COMP 350: Object Oriented Analysis and Design Lecture 2
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Chapter 9. Intro  What is Project Management?  Project Manager  Project Failures & Successes Managing Projects  PMBOK  SDLC Core Process 1 – Project.
S/W Project Management
CPTE 209 Software Engineering Summary and Review.
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Software Project Management Introduction to Project Management.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Software System Engineering: A tutorial
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
Business Analysis and Essential Competencies
Lecturer -Raja Natarajan Jul Project Integration and Scope Management Identifying, Selecting and Defining a Project ……….
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Reducing ITS Project Risk By using and developing consensus based regional ITS architecture and a systems engineering process Robert S. Jaffe, Ph.D., CSEP.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Service Transition & Planning Service Validation & Testing
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
Chapter 11. Intro  What is Project Management?  Project Manager  Project Failures & Successes Managing Projects  PMBOK  SDLC Core Process 1 – Project.
PROJECT MANAGEMENT FUNDAMENTALS Page 2 Why Project Management? Current Issues: n Complex nature of business today — More cross-functional efforts — Need.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Chapter 2 Iterative, Evolutionary, and Agile You should use iterative development only on projects that you want to succeed. - Martin Fowler 1CS
Rational Requirements Management with Use Cases v5.5 Copyright © Rational Software, all rights reserved 1 Requirements Management with Use Cases.
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
REQUIREMENTS - WHY WHAT AND HOW? Steve Chenoweth & Chandan Rupakheti CSSE 371 Chapters Requirements Text. Question 6.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Statistics from the Famous 1995 Standish Group Report.
CS 5150 Software Engineering Lecture 7 Requirements 1.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
RUP RATIONAL UNIFIED PROCESS Behnam Akbari 06 Oct
© NALO Solutions Limited NALO Solutions, presents the – Revenue Collector App Using Mobile Phones to gather Revenue SOFTWARE ENGINEERING.
RATIONAL UNIFIED PROCESS PROCESS FRAMEWORK OVERVIEW.
Dillon: CSE470: ANALYSIS1 Requirements l Specify functionality »model objects and resources »model behavior l Specify data interfaces »type, quantity,
Software Development Process includes: all major process activities all major process activities resources used, subject to set of constraints (such as.
TK2023 Object-Oriented Software Engineering
Introduction to Software Engineering
Requirements Analysis
Chapter 2 – Software Processes
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Project Management Chapter 11.
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Presentation transcript:

Software Engineering of Standalone Programs Prof. Ruth Dameron, Course web site with course materials is under WebCT – Need an identikey and password – Call HELP

Course web site contents Go to – Login if you have identikey and user-password Lecture material -- PowerPoint files – Print in “handout” or in Notes format – “Pure black and white” Homework assignments Some additional items such as short articles or book excerpts Other course information – syllabus with reading assignments, holidays – textbook information, PowerPoint lecture files – final exam information – office hours, contact information

Part of a whole Software Engineering Certificate -- 9 hrs graduate credit – – Software Engineering of Standalone Programs – Software Engineering of Multiprogram Systems – Software Engineering of Distributed Systems The links at the above web site point to course materials that are not under control of WebCT. – Their purpose is to let you see what is covered in the 3 courses – Warning: Lecture notes that match the ones I use in class PLUS your homework assignments are the ones that are under WebCT.

Requirements Engineering Slides originally developed by Michael Madigan StorageTek Manager, PAL Engineering

Cobb’s Paradox "We know why projects fail, we know how to prevent their failure -- so why do they still fail?” Martin Cobb Treasury Board of Canada Secretariat Ottawa, Canada

Project Resolution Resolution Type 1 Project Success Resolution Type 2 Challenged Resolution Type 3 Impaired

Cost Overruns Percent Over Budget

Time Overruns Percent of Time Under Estimated

Content Deficiencies Percent of Originally Planned Functionality

Project Success Factors Other User Involvemen t Executive Management Support Proper Planning Realistic Expectation Competent Staff Smaller Project Milestones Clear Statement of Requirements Ownership Clear Vision and Objectives Hard-Working Focused Staff

Top Ten Project Success Factors 1. user involvement 2. executive management support 3. clear statement of requirements 4. proper planning 5. realistic expectations 6. smaller project milestones 7. competent staff 8. ownership 9. clear vision and objectives 10. hard-working, focused staff

Properties of Challenged Projects Lack of Executive Support Other Lack of User Involvement Inc. Requirements & Specs Technology Incompetence Unrealistic Expectation Lack of Resources Changing Requirements & Specs Unclear Objectives Unrealistic Time Frame New Technology

Top Ten Challenged Project Factors 1. Lack of user involvement 2. Incomplete requirements and specifications 3. Changing requirements and specifications 4. Lack of executive support 5. Technology Incompetence 6. Lack of Resources 7. Unrealistic expectations 8. Unclear objectives 9. Unrealistic timeframe 10. New technology

Properties of Impaired Projects Unrealistic Expectations Lack of Executive Support Lack of Planning Changing Requirements & Specs Other Incomplete Requirement s Lack of User Involvement Lack of Resources Didn’t Need any Longer Lack of IT Management Technology Illiteracy

Top Ten Impaired Project Factors 1. Incomplete requirements 2. Lack of user involvement 3. Lack of resources 4. Unrealistic Expectations 5. Lack of executive support 6. Changing requirements & specs 7. Lack of planning 8. Didn’t need anymore 9. Lack of IT management 10. Technology illiteracy

Case Studies

High Level Software Concepts Model Based (System) Architecture Software Engineering (MBASE) Iterative Development (agile methods)

The Model-Clash Spider Web: Master Net 7

MBASE Integration Framework 7 Process models Life cycle anchor points Risk management Key practices Success models Business case IKIWISI Stakeholder win-win Property models Cost Schedule Performance Reliability Product models Domain model Requirements Architecture Code Documentation Planning and control Milestone content Evaluation and analysis Process entry/exit criteria Product evaluation criteria

What Does a Process Do for You? A software development process gives you The information you need When you need it In a form that you can use – As much or as little as you need – Easy to find what you need

Introducing the Rational Unified Process Process Made Practical Proj. Management Environment Business Modeling Implementation Test Analysis & Design Preliminary Iteration(s) Iter. #1 Phases Process Disciplines Iterations Iter. #2 Iter. #n Iter. #n+1 Iter. #n+2 Iter. #m Iter. #m+1 Deployment Configuration Mgmt Requirements ElaborationTransition Inception Construction Dynamic structure Static structure

Best Practices Process Made Practical Best Practices Process Made Practical Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Develop Iteratively Manage Requirements Use Component Architectures Model Visually (UML) Continuously Verify Quality Manage Change Unified Software Project Management Tools Unified Tools for the Project Team Tools Unified Tools for the Project Team Requirements Management Visual Modeling Automated Testing Content Management Change Management Requirements Management Visual Modeling Automated Testing Content Management Change Management Plan and Execute Iterative Projects Plan and Execute Iterative Projects Measure Progress and Quality Collaborate & Communicate Project Information Collaborate & Communicate Project Information Unified Software Project Management: an integrated solution to deploy, plan, execute, and monitor best practices Tools Unified Tools for the Project Team Tools Unified Tools for the Project Team Requirements Management Visual Modeling Automated Testing Content Management Change Management Requirements Management Visual Modeling Automated Testing Content Management Change Management Plan and Execute Iterative Projects Plan and Execute Iterative Projects Measure Progress and Quality Collaborate & Communicate Project Information Collaborate & Communicate Project Information Select and Deploy Best Practices

Requirements Engineering The disciplined application of scientific principles and techniques for developing, communicating, and managing requirements. 6

Systems Requirements Engineering Lifecycle User Requirements System Requirements System Architecture User Requirements Component Development Integration Test Acceptance Test System Development Capability Development Component Development

Component Development Lifecycle Software Requirements Architectural design Detailed design & coding Integration & Verification User Requirements Component Development

Requirements Engineering

Requirements Elicitation Software Requirements Identify relevant sources of requirements (usually customer) Determine what information is needed. Analyze the gathered information, looking for implications, inconsistencies, or unresolved issues Confirm your understanding of the requirements with the source Synthesize appropriate statements of the requirements

Outcome of good elicitation activities – The buyer/customer fully explore and fully understand their requirements. – The buyer/customers are able to separate their wants from their needs. – The buyer/customers are able to understand the capabilities and limitations of computer technology. – The buyer/customers understand the alternative solutions and impact of each alternative. – The buyer/customers understand the impact of the requirements on the developer and themselves. – The developers are solving the right problem. – The developers have confidence that the system to be delivered is feasible to build. – The developers have the trust and confidence of the customer. – The developers gain domain knowledge of the system

Outcome of poor elicitation effort – The customer probably will be dissatisfied. – The customer and developer have to cope with constantly changing requirements. – The developer is solving the wrong problem. – The developer has a difficult time building the system.

Requirements Elicitation User Involvement Criteria 2 Other User Involvemen t Executive Management Support Proper Planning Realistic Expectation Competent Staff Smaller Project Milestones Clear Statement of Requirements Ownership Clear Vision and Objectives Hard-Working Focused Staff Project Success Factors Do I have the right user(s)? Did I involve the user(s)early and often? Do I have a quality user(s) relationship? Do I make involvement easy? Did I find out what the user(s) needs? Software Requirements

Requirements Analysis Obtain Requirements from all possible sources (include but not limited to): – observation and measurements of the current system – interviews with customers – current system documentation – feasibility studies – models and prototypes – competitive analysis Software Requirements

Quality attributes

Requirements Specification Software function Performance External Interfaces Design Constraints Quality Attributes Software Requirements

Statement of Requirements Criteria Software Requirements Do I have a concise vision? Do I have a functional analysis? Do I have a risk assessment? Do I have a business case? Can I measure the project? Project Success Factors

Requirements Verification To identify and resolve software problems and high risk issues early in the software cycle. The assurance that the software requirement specification is in compliance with the system requirements, conforms to document standards, and is an adequate basis for the architectural design. Integration & Verification

Requirements Management Basic responsibility is to keep project within costs, within budget, and to meet customers needs. Estimate cost of system based on requirements. Control the volatility of the requirements. Manage the requirements configuration of the system Negotiate requirement changes Re-estimate cost of the system when requirements change. Software Requirements

Requirements Engineering Requirements Verification Requirements Analysis Requirements Specification Requirements Management Requirements Elicitation

Release 1Release 3Release 2 Requirements Engineering III Requirements Management Requirements Elicitation Requirements Verification Requirements Specification Requirements Management Requirements Analysis Foundation Requirements Elicitation Requirements Verification Requirements Specification Requirements Management Requirements Analysis Foundation Requirements Elicitation Requirements Verification Requirements Specification Requirements Management Requirements Analysis Requirements Elicitation Requirements Verification Requirements Specification Requirements Management Requirements Analysis

Successful Release Cycle Proportions 4N months 3N months 2N Months

Success Attributes that Requirements Engineering Affect User Involvement Clear Statement of requirements Proper Planning Realistic Expectations Smaller Project Milestones Clear Vision and Objectives Hard Working, Focused Staff Project Success Factors

Requirements Engineering Conclusion Software Requirements Architectural design Detailed design & coding Integration & Verification User Requirements Component Development Software Requirements Engineering includes: – elicitation – analysis – specification – verification and validation – management of requirements development process Affects 7 of 10 attributes of successful projects

References 1 The Standish Group, Chaos, January The Standish Group, Unfinished Voyages, September Software Quality Measurement for Distributed Systems, RADC-TR Requirements Engineering, Thayer, SMC 10/97, version 2 5 Richard Thayer, Software Requirements Engineering, IEEE, STEP, Operational Requirements for Automated Capabilities, STEP, MBASE, “Avoiding the Software Model-Clash Spiderweb,” IEEE Computer, November, 2000, pp