Software Project Management

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Advertisements

1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Software Process Models
Software Project Management
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Chapter 2 The Software Process
Stoimen Stoimenov QA Engineer SitefinityLeads, SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
W5HH Principle As applied to Software Projects
© Prentice Hall CHAPTER 9 Application Development by Information Systems Professionals.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
Software Processes: Traditional CSCI102 - Systems ITCS905 - Systems MCS Systems.
Lecture 2: Software Production & Processes Dr Valentina Plekhanova University of Sunderland, UK
Creator: ACSession No: 1 Slide No: 1Reviewer: SS CSE300Advanced Software EngineeringSeptember 2006 Introduction to the Module CSE300 Advanced Software.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne, office K115A. –
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Introduction to Software Testing
Software Verification and Validation (V&V) By Roger U. Fujii Presented by Donovan Faustino.
Chapter 3 Software Processes.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
1COM6030 Systems Analysis and Design © University of Sheffield 2005 COM 6030 Software Analysis and Design Lecture 2- Software Process Models and Project.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 Software Process Lecture Outline Nature of software projects Engineering approaches Software process A process step Characteristics of a good.
University of Palestine software engineering department Testing of Software Systems Fundamentals of testing instructor: Tasneem Darwish.
Software Project Management
PGD-1303 Software Project Management?. What is software? Software  Computer programs and associated documentation Documentation includes  requirements.
© The McGraw-Hill Companies, An Introduction Chapter 1 Software Project Management 4 th Edition Robert Hughes and Mike Cotterell.
Software Quality Assurance Activities
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
SOFTWARE ENGINEERING1 Introduction. Software Software (IEEE): collection of programs, procedures, rules, and associated documentation and data SOFTWARE.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
CEN st Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi What.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Chapter 2 Process: A Generic View
Overview of Formal Methods. Topics Introduction and terminology FM and Software Engineering Applications of FM Propositional and Predicate Logic Program.
This chapter is extracted from Sommerville’s slides. Text book chapter
1 Activities covered by project management Feasibility study Is project technically feasible and worthwhile from a business point of view? Planning Only.
Jump to first page (c) 1999, A. Lakhotia 1 Software engineering? Arun Lakhotia University of Louisiana at Lafayette Po Box Lafayette, LA 70504, USA.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 4 Slide 1 Project management l Organising, planning and scheduling software projects.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Formal Methods in Software Engineering
An Introduction to Software Engineering
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Formal Methods.
Chapter 1: Fundamental of Testing Systems Testing & Evaluation (MNN1063)
Software Engineering Introduction.
1 The Requirements Problem Chapter 1. 2 Standish Group Research Research paper at:  php (1994)
Software Engineering (CSI 321) Software Process: A Generic View 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Introduction to Software Project Management Lecture1.
Laurea Triennale in Informatica – Corso di Ingegneria del Software I – A.A. 2006/2007 Andrea Polini XVII. Verification and Validation.
Advanced Software Engineering Dr. Cheng
Methodologies and Algorithms
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Fundamentals of Information Systems, Sixth Edition
The Systems Engineering Context
Software Engineering (CSI 321)
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Introduction to Software Testing
FOUNDATIONAL CONCEPTS
CS310 Software Engineering Lecturer Dr.Doaa Sami
Department of Computer Science Abdul Wali Khan University Mardan
SOFTWARE PROJECT MANAGEMENT KEY TOPICS
Presentation transcript:

Software Project Management Lecture 1 Introduction to Software Project Management

Overview Software engineering Software project management Formal methods Software Project Management

Software Crisis Faulty software Delay in completion time Over budgeted Difficult to maintain software Mention that we have less than 60 years of software development history Software Project Management

Some UK projects Home Office asylum seeker Casework system: £80m; abandoned 2001 (Siemens). Pathway UK benefits identity card system: abandoned 1999 with £1bn losses (ICLFujitsu). Datacentre for UK cabinet office: £85m, cancelled in 2004 (ITNET). MRC Laboratory of Molecular Biology, FAMIS purchasing system: £55m; ‘operating failure’ (LogicaGMC). UK e-University: £62m; abandoned 2004 (Sun, though only £20m of the full figure). Software Project Management

American experience 25% of development projects are abandoned probability of cancellation rises to 50% for largest developments average project overshoots schedule by 50% 75% of systems are regarded as ‘operating failures’ U.S. Bureau of Labor Statistics, 1997 Software Project Management

Some important facts Relative cost of the software in a system is growing Increase in demand for software Increase in size and complexity of software Increase in performance of hardware Software Project Management

Software Engineering An initial, loose definition: “the establishment and use of sound engineering principles in order to obtain, economically, software that is reliable and works efficiently on real machines” [Bauer, 1969] Software Project Management

A more useful definition “The application of scientific and engineering efforts to 1. transform an operational need into a system through the use of an iterative process of definition, analysis, design, test, and validation; 2. ensure the compatibility of all interfaces […]; 3. integrate reliability, maintainability, disposability, […] to meet cost, schedule, and technical performance objectives.” [Blanchard, 1998] Software Project Management

Software Engineering Aimed at large software Systematic and well-defined techniques, methodologies and tools To design, code, test and maintain quality software Within a resource constrained environment Emphasis the difference between large software and small softwar 2. Describe a bit more details about quality software 3. The importance of constraints on resources – time, staff, etc 4. Mention the importance of formal methods Software Project Management

Large Software Developed by more than one person Effective communications are important – standards, documentation, etc Management issues Techniques and methodologies are useful only if automated systems can be built upon them Software Project Management

Phases of Software Development Requirements analysis and specification Design Coding Testing Installation Maintenance Briefly explain what is meant by each phase 2. Point out that such a classifications of phases is not unique 3. Though these phases are listed sequentially, they are overlapping and iterative Software Project Management

Some important observations Maintenance is the most expensive phase and coding is the least expensive phase The earlier the detection of faults, the less expensive the correction of faults Software Project Management

Characteristics of software Simple and elegant mathematical representation Logic intensive Cannot have partial completion Design costs are relatively expensive Software Project Management

What is a project? Key characteristics of a project: A planned activity Specific objectives or products Work to be carried out in several phases Limited resources Deadline Large and complex Software Project Management

Major differences between software products and hardware products Progress of software development is not obviously visible Modifications of software products are more easy and flexible Software products are usually more complex than the hardware products in terms of development or construction cost Software Project Management

Major processes in developing a software system Feasibility study Project planning Project execution Software Project Management

Feasibility Study Analyze the general requirements, costs and the functionalities and services provided by the system to be developed Aimed to determine whether a system should be developed or not Can be viewed as a project itself Software Project Management

Important factors in planning a software project To know the nature of the system to be developed A management information system or a control system To know clearly the objectives and products of the project How to evaluate the objectives and products after the completion of the project Software Project Management

What is management? Management involves the following activities: Planning Staffing Innovating Directing Monitoring Liaising …? Some more activities are given in the recommended textbook Software Project Management

What is software project management? Understand the characteristics of software products Understand what is meant by a project Understand what is meant by management Teacher reminds the students that these three issues were covered in the previous slides. Software Project Management

Common problems with software projects Lack of quality standards and measures Lack of measurable milestones Difficult to make the progress visible Poor communications Poor documentation Frequent changes of requirements Over budget and late delivery of software Software Project Management

Major issues of software project management to be covered Software development models Software size and cost estimation Software project planning Software risk management Resource allocation Standards: ISO 9000 and CMM Performance tracking and reporting This is in fact a list of the topics to be covered in the course For each topic, briefly explain: (a) what is the objective (b) what is the content Software Project Management

Major issues of software project management to be covered (cont’d) Software project configuration management Software project team management Software Project Management

Main problems encountered with requirements and specifications Ambiguous Incomplete Inconsistent Teachers should give examples to illustrate these problems Software Project Management

To overcome these problems via Main problems encountered with requirements and specifications (cont’d) To overcome these problems via Formality – achieving precision Abstraction – concentrating on essential parts Software Project Management

Formal Methods Mathematically based techniques Providing a precise and concise language Supporting formality Supporting abstraction Supporting logical reasoning May support automation Teachers need to emphasis that a full automation is not normally supported Teachers also need to emphasis that formal methods are not only applicable for requirements and specifications. Software Project Management

Example: traffic light control Simple 4-way crossroads Traffic lights control each entry Roads run North-South and East-West N Software Project Management

Light == red | redamber | green | amber, type Light == red | redamber | green | amber, Junction :: ns : Light ew : Light timer : Nat value nextLight : Light → Light nextLight(l) is case l of red → redamber, redamber → green, green → amber, amber → red end, Software Project Management

if ns(j) isin {amber, redamber} \/ ew(j) isin {amber, redamber} limit : Junction → Nat limit(j) is if ns(j) isin {amber, redamber} \/ ew(j) isin {amber, redamber} then 1 else 4 end, next : Junction → Junction next(j) is if limit(j) ≤ timer(j) then mk_Junction(nextLight(ns(j)), nextLight(ew(j)), 0) else mk_Junction(ns(j), ew(j), timer(j) + 1) end, safe : Junction → Bool safe(j) is ~ (ns(j) = green /\ ew(j) = green) Software Project Management

Critical properties Safety: Liveness: Not both green at the same time: G(safe(junction)) i.e. Globally (in all states), the junction is safe Liveness: In each direction, lights will eventually go green: G(F(ns(junction) = green)) i.e. Globally, in the Future, North-South is green /\ G(F(ew(junction) = green)) Software Project Management

Is the junction safe and live? Safe? – depends on what state it starts in Live? – yes We can model check the specification to prove these. Software Project Management

local junction : Junction := mk_Junction(red, red, 0) in [change] transition_system [T] local junction : Junction := mk_Junction(red, red, 0) in [change] true ==> junction' = next(junction) end ltl_assertion [safe] T |- G(safe(junction)), [live_ns] T |- G(F(ns(junction) = green)), [live_ew] T |- G(F(ew(junction) = green)) Software Project Management

Counterexample for 'safe': ======================== Step 0: junction = mk_Junction(red, red, 0) ------------------------ Step 1: junction = mk_Junction(red, red, 1) ... Step 4: junction = mk_Junction(red, red, 4) Step 5: junction = mk_Junction(redamber, redamber, 0) Step 7: junction = mk_Junction(green, green, 0) Summary: The assertion 'safe' is invalid. The assertion 'live_ns' is valid. The assertion 'live_ew' located at is valid. Software Project Management

What are formal methods for? Clarify and fix requirements Support early analysis: Static analysis Testing Model checking Proof Provide a basis for implementation Software Project Management

Specification languages The traffic light example was written in RAISE There are many formal methods, some general purpose, some specialised Software Project Management

A good slogan You may not be able to avoid making mistakes … But you must find them before they cost too much! Software Project Management

Modelling Modern software engineering is based on making models A formal model (eg in RAISE) supports more analysis than in informal one (eg in UML) Increasingly, implementations will be derived from models: programmers will be obsolete Software Project Management

References Hughes, B., and Cotterell, M. (1999) Software Project Management, McGraw Hill Dean, C.N., and Hinchey, M.G. (1996) Teaching and Learning Formal Methods, Academic Press Sommerville, I. (2001) Software Engineering, Pearson Education. Software Project Management

References RAISE: http://www.iist.unu.edu/raise Dines Bjørner (2006) Software Engineering, Springer Software Project Management