1 Software Process Lecture 02. 2 Outline Nature of software projects Engineering approaches Software process A process step Characteristics of a good.

Slides:



Advertisements
Similar presentations
Software Quality Assurance Plan
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Object-Oriented Software Development CS 3331 Fall 2009.
Software Process Models
Software Engineering CSE470: Process 15 Software Engineering Phases Definition: What? Development: How? Maintenance: Managing change Umbrella Activities:
Chapter 4 Quality Assurance in Context
Stoimen Stoimenov QA Engineer SitefinityLeads, SitefinityTeam6 Telerik QA Academy Telerik QA Academy.
CSCU 411 Software Engineering Chapter 2 Introduction to Software Engineering Management.
School of Computing, Dublin Institute of Technology.
Software Project Transition Planning
(c) 2007 Mauro Pezzè & Michal Young Ch 1, slide 1 Software Test and Analysis in a Nutshell.
Software Engineering For Beginners. General Information Lecturer, Patricia O’Byrne. – Times: –See noticeboard outside.
Software Process CS 414 – Software Engineering I Donald J. Bagert Rose-Hulman Institute of Technology December 17, 2002.
Introduction to Software Testing
Web Development & Design Foundations with XHTML
Software Engineering Institute Capability Maturity Model (CMM)
Capability Maturity Model
Chapter : Software Process
Web Developer & Design Foundations with XHTML
Software Engineering II Lecture 1 Fakhar Lodhi. Software Engineering - IEEE 1.The application of a systematic, disciplined, quantifiable approach to the.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Dillon: CSE470: SE, Process1 Software Engineering Phases l Definition: What? l Development: How? l Maintenance: Managing change l Umbrella Activities:
N By: Md Rezaul Huda Reza n
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
RUP Implementation and Testing
1 Chapter 2 The Process. 2 Process  What is it?  Who does it?  Why is it important?  What are the steps?  What is the work product?  How to ensure.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Project Tracking. Questions... Why should we track a project that is underway? What aspects of a project need tracking?
Chapter 6 : Software Metrics
S Q A.
SENG521 (Fall SENG 521 Software Reliability & Testing Software Product & process Improvement using ISO (Part 3d) Department.
Capability Maturity Models Software Engineering Institute (supported by DoD) The problems of software development are mainly caused by poor process management.
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.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
CS 3610: Software Engineering – Fall 2009 Dr. Hisham Haddad – CSIS Dept. Chapter 2 The Software Process Discussion of the Software Process: Process Framework,
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
Note Excerpts from Object-Oriented Software Engineering WCB/McGraw-Hill, 2008 Stephen R. Schach
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Software Testing and Quality Assurance Software Quality Assurance 1.
Process Improvement. It is not necessary to change. Survival is not mandatory. »W. Edwards Deming Both change and stability are fundamental to process.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Process Model
Chapter 3: Software Project Management Metrics
Configuration Management and Change Control Change is inevitable! So it has to be planned for and managed.
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Process Improvement. It is not necessary to change. Survival is not mandatory. »W. Edwards Deming.
CSPC 464 Fall 2014 Son Nguyen. 1. The Process of Software Architecting, Peter Eeles, Peter Cripss 2. Software Architecture for Developers, Simon Brown.
Software Development Life Cycle (SDLC)
CS223: Software Engineering Lecture 2: Introduction to Software Engineering.
CS223: Software Engineering Lecture 4: Software Development Models.
Unit – I Presentation. Unit – 1 (Introduction to Software Project management) Definition:-  Software project management is the art and science of planning.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Mahindra Satyam Confidential Quality Management System Software Defect Prevention.
© NALO Solutions Limited NALO Solutions, presents the – Revenue Collector App Using Mobile Phones to gather Revenue SOFTWARE ENGINEERING.
Capability Maturity Model. What is CMM? n CMM: Capability Maturity Model n Developed by the Software Engineering Institute of the Carnegie Mellon University.
TK2023 Object-Oriented Software Engineering
Software Engineering – A layered Technology
CS4311 Spring 2011 Process Improvement Dr
Level 1 Level 1 – Initial: The software process is characterized as ad hoc and occasionally even chaotic. Few processes are defined, and success depends.
FOUNDATIONAL CONCEPTS
Software life cycle models
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Software Engineering I
Capability Maturity Model
Capability Maturity Model
What is Software Engineering?
Software Reviews.
Presentation transcript:

1 Software Process Lecture 02

2 Outline Nature of software projects Engineering approaches Software process A process step Characteristics of a good process Waterfall model for development Other models Project planning

3 Software Systems Ubiquitous, used in variety of applications –Business, engineering, scientific applications Simple to complex, internal to public, single function to enterprise-wide, one location to distributed, batch or real-time, informational to mission-critical, ….

4 Challenge in large projects Developing large/complex software application is very challenging –Effort intensive –High cost –Long development time –Changing needs for users –High risk of failure, user acceptance, performance, maintainability, … Quite different from one-time programs where author and user are same !

5 Successful software system Software development projects have not always been successful When do we consider a software application successful? –Development completed –It is useful –It is usable, and –It is used Cost-effectiveness, maintainability implied

6 Reasons for failure Schedule slippage Cost over-runs Does not solve user’s problem Poor quality of software Poor maintainability

7 Reasons for failure …. Ad hoc software development results in such problems –No planning of development work (e.g. no milestones defined) –Deliverables to user not identified –Poor understanding of user requirements –No control or review –Technical incompetence of developers –Poor understanding of cost and effort by both developer and user

8 Engineering: other disciplines Large projects common and successfully done –Buildings bridges, dams –Power plants –Aircrafts, missiles, … “engineering” a solution: –To design, develop (build, fabricate) an artifact that meets specifications efficiently, cost- effectively and ensuring quality –Using scientific principles.

9 Engineering … Requires well-defined approach : repeatable, predictable Large projects requires managing the project itself –Manage people, money (cost), equipment, schedule –Scale makes big difference: compare building a hut, 2–storeyed house, or 50-storeyed apartment building Quality extremely important : relates to failures, efficiency, usability, …. –People willing to pay for quality !

10 Large Projects Involve different types of people –Large building : architect, civil engineer, electrical engineer, workers (masons, carpenters), …. Continuous supervision for quality assurance –On site supervisors (check cement/steel quality, ensuring proper mix of sand & cement, ….)

11 Large projects … Many deliverables : architecture plan, model, structure diagrams, electrical cabling layouts, … Standards, regulations, conventions need to be followed Steps, milestones defined and reviews are carried out; progress is visible Project planning and project management essential

12 Software projects Software is different from other products –Cost of production concentrated in development –Maintenance consists of making corrections and enhancing or adding functions –Progress in development is difficult to measure

13 Apply Engineering Approach Hence planning and control even more important in software development  engineering approach: –Attempt to estimate cost/effort –Plan and schedule work –Involve user in defining requirements –Identify stages in development –Define clear milestones so that progress can be measured –Schedule reviews both for control and quality –Define deliverables –Plan extensive testing

14 Job of Software Developer is difficult Dealing with users –Ill-defined requirements –Concern with ease-of-use and response time Dealing with technical people –Concerned with coding, databases, file structures, etc. Dealing with management –Concerned with return on their investment –Cost-benefit analysis –Schedule

15 Software Process Process consists of activities/steps to be carried out in a particular order Software process deals with both technical and management issues Consists of different types of process Process for software development: produces software as end-result – multiple such processes may exist – a project follows a particular process

16 Process Types … Process for managing the project – defines project planning and control – effort estimations made and schedule prepared – resources are provided – feedback taken for quality assurance – monitoring done.

17 Process Types … Process for change and configuration mgmt. –Resolving requests for changes –Defining versions, their compositions –Release control Process for managing the above processes themselves –Improving the processes based on new techniques, tools, etc. –Standardizations and certifications (ISO, CMM)

18 Multiple processes A large software development company may have multiple development processes A. For client-server based conventional applications (sales processing, payroll) B. For enterprise-level (ERP) projects based on packages and customization C. For web-based e-commerce type D. For data-warehousing/decision-support type The company may have many projects in each category

19 Step in a Process Each step has a well-defined objective Requires people with specific skills Takes specific inputs and produces well- defined outputs Step defines when it may begin (entry criteria) and when it ends (exit criteria) Uses specific techniques, tools, guidelines, conventions.

20 Process step … Step must be executed as per project plan that gives duration, effort, resources, constraints, etc. It must produce information for management so that corrective actions can be taken –E.g., adding more resources A step ends in a review (V&V) –Verification: check consistency of outputs with inputs (of the step) –Validation: check consistency with user needs

21 Process step Review V&V actions to be carried out (entry criteria) (exit criteria) inputs Project Control info info for management outputs

22 Characteristics of a Good Process Should be precisely defined – no ambiguity about what is to be done, when, how, etc. It must be predictable – can be repeated in other projects with confidence about its outcome –Predictable with respect to effort, cost: Project A: Web-based library applications done by 3 persons in 4 months  another project B (guest house bookings), similar in complexity should also take about 12 person months.

23 A Good Process … –Predictable for quality: with respect to number and type of defects, performance, … Predictable process is said to be ‘under statistical control’, where actual values are close to expected values It supports testing and maintainability –Maintenance by third party –Follow standards, provide necessary documentation –This characteristic differentiates between prototype and product

24 A Good Process … Facilitates early detection of and removal of defects –Defects add to project cost –Late detection/correction is costly It should facilitate monitoring and improvement –Based on feedback –Permit use of new tools, technologies –Permit measurements