CS 501: Software Engineering Fall 1999 Lecture 22 (a) Managing the Software Process (b) Software Reuse.

Slides:



Advertisements
Similar presentations
Programming Paradigms and languages
Advertisements

NML/436/L1-1 Nazareth Northwestern Mutual Life Participants in IS Development l A team of people comprising: l Project Manager l Systems Analysts l Specialists.
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Lecturer: Sebastian Coope Ashton Building, Room G.18 COMP 201 web-page: Software.
1 CS 502: Computing Methods for Digital Libraries Lecture 22 Web browsers.
1 SYS366 Week 1 - Lecture 2 How Businesses Work. 2 Today How Businesses Work What is a System Types of Systems The Role of the Systems Analyst The Programmer/Analyst.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
1 CS 501 Spring 2007 CS 501: Software Engineering Lecture 16 Object Oriented Design 2.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Software Cost Estimation.
1 CS 501 Spring 2008 CS 501: Software Engineering Lecture 16 Object Oriented Design 2.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
CS CS 5150 Software Engineering Lecture 20 Acceptance and Delivery.
Network+ Guide to Networks, Fourth Edition Chapter 1 An Introduction to Networking.
CS 501: Software Engineering Fall 2000 Lecture 17 Design for Usability I.
Software Cost Estimation Hoang Huu Hanh, Hue University hanh-at-hueuni.edu.vn.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Chapter 3 Project Management
This chapter is extracted from Sommerville’s slides. Text book chapter
Web Developer & Design Foundations with XHTML
12 Building and Maintaining Information Systems.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
1 ECE 453 – CS 447 – SE 465 Software Testing & Quality Assurance Lecture 22 Instructor Paulo Alencar.
Quality Attributes of Web Software Applications – Jeff Offutt By Julia Erdman SE 510 October 8, 2003.
Chapter 6 : Software Metrics
Fundamentals of Database Chapter 7 Database Technologies.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 26 Slide 1 Software cost estimation 1.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 23Slide 1 Chapter 23 Software Cost Estimation.
1.  Project: temporary endeavor to achieve some specific objectives in a defined time  Project management ◦ Dynamic process ◦ Controlled and structured.
Software cost estimation Predicting the resources required for a software development process 1.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
1 Introduction to Microsoft Windows 2000 Windows 2000 Overview Windows 2000 Architecture Overview Windows 2000 Directory Services Overview Logging On to.
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
10/27/20151Ian Sommerville.  Fundamentals of software measurement, costing and pricing  Software productivity assessment  The principles of the COCOMO.
Copyright © 1994 Carnegie Mellon University Disciplined Software Engineering - Lecture 3 1 Software Size Estimation I Material adapted from: Disciplined.
Cost Estimation. Problem Our ability to realistically plan and schedule projects depends on our ability to estimate project costs and development efforts.
Quality Software Project Management Software Size and Reuse Estimating.
1 CS 501 Spring 2003 CS 501: Software Engineering Lecture 7 Business Aspects of Software Engineering.
Parts of this presentation is extracted from Ian Sommerville’s slides located at
1 Chapter 3 1.Quality Management, 2.Software Cost Estimation 3.Process Improvement.
CS 360 Lecture 10.  Software is expensive.  Most software development makes extensive use of existing software.  Developers avoid building new software.
Architecture of Decision Support System
CS CS 5150 Software Engineering Lecture 13 System Architecture and Design 1.
Computing and SE II Chapter 15: Software Process Management Er-Yu Ding Software Institute, NJU.
©Ian Sommerville 2000Software Engineering, 7th edition. Chapter 26Slide 1 Software cost estimation l Predicting the resources required for a software development.
Web Pages with Features. Features on Web Pages Interactive Pages –Shows current date, get server’s IP, interactive quizzes Processing Forms –Serach a.
1 SWE 513: Software Engineering People II. 2 Future Experience What will you be doing one year from now? Ten years from now?
©Ian Sommerville, adapted by Werner Wild 2004Project Management Slide 1 Software cost estimation u Predicting the resources required for a software development.
Software cost estimation. Fundamental estimation questions How much effort is required to complete an activity? How much calendar time is needed to complete.
© 2013, published by Flat World Knowledge Chapter 10 Understanding Software: A Primer for Managers 10-1.
1 Business Aspects of Software Engineering SWE 513.
1 Chapter 3: Project Management Chapter 22 & 23 in Software Engineering Book.
1 Chapter 12 Configuration management This chapter is extracted from Sommerville’s slides. Text book chapter 29 1.
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 27 Software Engineering as Engineering.
CS 5150 Software Engineering Lecture 17 Program Design 4/ Security & Privacy.
CS 501: Software Engineering Fall 1999 Lecture 20 Management III Managing People.
Legacy Systems and Software Reuse CS 560. Economics Software is expensive.  Most software development makes extensive use of existing software.  Developers.
Chapter 3 Project Management Parts of this presentation is extracted from Ian Sommerville’s slides located at
1 CS 501 Spring 2002 CS 501: Software Engineering Lecture 15 System Architecture III.
WEB BASED DSS Aaron Atuhe. KEY CONCEPTS When software vendors propose implementing a Web-Based Decision Support System, they are referring to a computerized.
The Information Systems Development Processes Chapter 9.
CS 501: Software Engineering Fall 1999 Lecture 23 Design for Usability I.
Advanced Software Engineering Dr. Cheng
Project Cost Management
Rest of Project Management
Chapter 23 – Project planning
Software Cost Estimation
Agenda The current Windows XP and Windows XP Desktop situation
Presentation transcript:

CS 501: Software Engineering Fall 1999 Lecture 22 (a) Managing the Software Process (b) Software Reuse

2 Administration  Assignment 5 due date changed  No recitation next week

3 Cost Estimation See Sommerville, Chapter 29 Categories of cost:  Hardware and software  Professional staff (salaries and benefits)  Miscellaneous (e.g., travel and training)  Indirect (e.g., space, support staff, technical infrastructure, marketing and management)  Profit

4 Cost Estimation The challenges in cost estimation are:  How long will it take?  How many people will be required? These are reflected in the costs for:  Professional staff  Indirect costs

5 Pricing For in-house development, costs and pricing are directly related by some formula. Example: Federally funded university research For commercial development, price charged may differ from costs:  Market penetration (new fields, foot in door)  Contingency to cover uncertainty  Ownership of software product  Financial health

6 Productivity Productivity = (units of output) (resources input) But what is the unit of output?  Size related measures lines of code (what is a line?)  Function related measures e.g., UML nodes and arcs

7 Team Productivity  Staff ability and expertise  Domain expertise  Process quality  Project size  Technology support  Working environment Microsoft is the world's greatest software company, but Windows 2000 is two years behind schedule.

8 Cost Estimation Techniques The following techniques have been suggested. See Sommerville for details  Algorithmic cost modeling  Expert judgment  Estimation by analog  Parkinson's Law / pricing to win All these methods work reasonably in familiar domains. None work well in strange domains.

9 Algorithmic Cost Estimation Factors to take into account:  Complexity  Computer attributes (e.g., embedded, networked)  Product metric (size or functionality)  Personnel attributes (e.g., experience, ability)

10 Quality Management "Total Quality Management": A management fad of the early 1990s. Buzz words, consultants, books, training programs, awards, standards. But some good concepts:  Customer satisfaction, not internal measures  Staff development and participation in management (e.g., US Navy)  Continuous improvement of processes  Measurements and comparison with other industries

11 Quality in Software Emphasis has been on:  process standards e.g., documentation standards  software process metrics Very valuable within organizations. Little success across organizations.

12 Software with Monitoring Software can measure aspects of its use and performance:  Networking and distributed computing Example: SNMP  Monitoring user interfaces Which features are never used?  Logging and data mining

13 Process Improvement Processes: project management, scheduling, communications, documentation, testing, reporting, recruiting, training, etc.  Understand the existing processes and practices actual practice may differ from official  Decide the appropriate level of processes big project => more process inexperienced team => more process  Improve and consolidate one step at a time acceptance => leadership

14 Software Engineering Institute Process Maturity Model Categorization of contractors for DoD software: 1. Initial -- no effective management processes 2. Repeatable -- requirements management, project planning, scheduling and tracking, quality assurance, configuration control 3. Defined -- conformity to defined processes, design and code reviews, communication procedures, personnel development 4. Managed -- software quality management, quantitative process management 5. Optimizing -- continuous improvement of processes

15 Software Processes How important are processes to the development of good software?

16 Software Processes and Good Software  Processes do not guarantee good software... but they help  Larger projects need more formality of management  There is no consensus about preferred processes  The keys to success are: high-quality professional staff good leadership realistic goals communication with client

17 Software Reuse Potential benefits of reuse: Better software at lower cost  Reduce development time and cost  Improved reliability of mature components  Shared maintenance cost Potential disadvantages of reuse:  Difficulty in finding appropriate components  Components may be a poor fit for application

18 Software Reuse Examples Software developers rely heavily on software components provided by others System software  device drivers  file systems  exception handling  task management  network protocols Database management systems

19 Software Reuse Examples (Tools) Standard functions  mathematical methods  formatting User interface toolkits (e.g., Macintosh)  Graphics tools (Quickdraw)  Dialogs  WIMP -- windows, icons, menus, mouse tracking

20 Software Reuse (Application Packages)  Package supports a standard application (e.g., payroll, user interface to Internet information)  Functionality can be enhanced by: => configuration parameters (e.g., table driven) => extensibility at defined interfaces => custom written sources code extensions

21 Extensibility in Web Browsers  Data types: helper applications, plug-ins  Protocols HTTP, WAIS, Gopher, FTP, etc. proxies  Executable code CGI scripts at server JavaScript at client Java applets  Style sheets

22 Reuse and Object Object Oriented Languages Example: Java is a relatively straightforward language with a very rich set of class hierarchies.  Java programs derive much of their functionality from standard classes  Learning and understanding the classes is difficult.  Java experts can write complex systems quickly  Inexperienced Java programmers write inelegant and buggy programs

23 Reading Before next class, read Sommerville Chapters 17, pages 319 to 346