Ch. 71 The software production process. Ch. 72 Questions What is the life cycle of a software product? Why do we need software process models? What are.

Slides:



Advertisements
Similar presentations
Chapter 7: Software production process Refers to the activities that are used for building, delivering, deploying, and evolving a software product, from.
Advertisements

Prescriptive Process models
Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
1 Requirements and the Software Lifecycle The traditional software process models Waterfall model Spiral model The iterative approach Chapter 3.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Ch 3: Unified Process CSCI 4320: Software Engineering.
Object-Oriented Software Development CS 3331 Fall 2009.
Virtual University - Human Computer Interaction 1 © Imran Hussain | UMT Imran Hussain University of Management and Technology (UMT) Lecture 16 HCI PROCESS.
Unit 2. Software Lifecycle
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
CS487 Software Engineering Omar Aldawud
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
1 Chapter 3 Prescriptive Process Models Software Engineering: A Practitioner’s Approach, 6th edition by Roger S. Pressman.
 2004 by SEC Chapter 2 Software Development Process Models.
CSC 480 Software Engineering
Chapter 3 Process Models
CHAPTER 1 SOFTWARE DEVELOPMENT. 2 Goals of software development Aspects of software quality Development life cycle models Basic concepts of algorithm.
Chapter 4 Quality Assurance in Context
Chapter 2 – Software Processes
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
OO Development Process. UML and Process UML standardizes notation, not process –Increase likelihood of widespread acceptance There is significant variability.
Object-oriented Analysis and Design
CS 501: Software Engineering
Ch7: Software Production Process. 1 Questions  What is the life cycle of a software product?  Why do we need software process models?  What are the.
COMP 350: Object Oriented Analysis and Design Lecture 2
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Life Cycle Model
S/W Project Management
UML - Development Process 1 Software Development Process Using UML (2)
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
1 CMPT 275 Software Engineering Software life cycle.
Chapter 2 The process Process, Methods, and Tools
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
©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.
1 ISA&D7‏/8‏/ ISA&D7‏/8‏/2013 Systems Development Life Cycle Phases and Activities in the SDLC Variations of the SDLC models.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
 CS 5380 Software Engineering Chapter 2 – Software Processes Chapter 2 Software Processes1.
Systems Design Approaches The Waterfall vs. Iterative Methodologies.
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
Review of Software Process Models Review Class 1 Software Process Models CEN 4021 Class 2 – 01/12.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Chapter 4 프로세스 모델 Process Models
Chapter 2 – Software Processes Lecture 1 Chapter 2 Software Processes1.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Ch7: Software Production Process. 1 Waterfall models  Invented in the late 1950s for large air defense systems, popularized in the 1970s  Main characteristics:
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Lectures 2 & 3: Software Process Models Neelam Gupta.
CS 4500: Software Development Software Process. Materials Sommmerville Chapters 1, 2 and 3 Software Cycle and Models:
1 Chapter 2 SW Process Models. 2 Objectives  Understand various process models  Understand the pros and cons of each model  Evaluate the applicability.
Review of Definitions Software life cycle: –Set of activities and their relationships to each other to support the development of a software system Software.
Lecture 3 Prescriptive Process Models
Software Processes (a)
Chapter :Software Process Model
UNIFIED PROCESS.
Requirements and the Software Lifecycle
Introduction to Software Engineering
COMP 350: Object Oriented Analysis and Design Lecture 2
SOFTWARE LIFE-CYCLES Beyond the Waterfall.
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

Ch. 71 The software production process

Ch. 72 Questions What is the life cycle of a software product? Why do we need software process models? What are the goals of a software process and what makes it different from other industrial processes?

Ch. 73 Life cycle The life cycle of a software product –from inception of an idea for a product through requirements gathering and analysis architecture design and specification coding and testing delivery and deployment maintenance and evolution retirement

Ch. 74 Software process model Attempt to organize the software life cycle by defining activities involved in software production order of activities and their relationships Goals of a software process –standardization, predictability, productivity, high product quality, ability to plan time and budget requirements

Ch. 75 Code&Fix The earliest approach Write code Fix it to eliminate any errors that have been detected, to enhance existing functionality, or to add new features Source of difficulties and deficiencies –impossible to predict –impossible to manage

Ch. 76 Models are needed Symptoms of inadequacy: the software crisis –scheduled time and cost exceeded –user expectations not met –poor quality The size and economic value of software applications required appropriate "process models"

Ch. 77 Process as a "black box"

Ch. 78 Problems The assumption is that requirements can be fully understood prior to development Interaction with the customer occurs only at the beginning (requirements) and end (after delivery) Unfortunately the assumption almost never holds

Ch. 79 Process as a "white box"

Ch. 710 Advantages Reduce risks by improving visibility Allow project changes as the project progresses –based on feedback from the customer

Ch. 711 The main activities They must be performed independently of the model The model simply affects the flow among activities

Ch. 712 Feasibility study Why a new project? –cost/benefits tradeoffs –buy vs make Requires to perform preliminary requirements analysis Produces a Feasibility Study Document 1.Definition of the problem 2.Alternative solutions and their expected benefits 3.Required resources, costs, and delivery dates in each proposed alternative solution

Ch. 713 Requirements engineering activities

Ch. 714 Requirements engineering Involves –eliciting –understanding –analyzing –specifying Focus on –what qualities are needed, NOT on –how to achieve them

Ch. 715 What is needed Understand interface between the application and the external world Understand the application domain Identify the main stakeholders and understand expectations –different stakeholders have different viewpoints –software engineer must integrate and reconcile them

Ch. 716 The requirements specification document (1) Provides a specification for the interface between the application and the external world –defines the qualities to be met Has its own qualities –understandable, precise, complete, consistent, unambiguous, easily modifiable

Ch. 717 The requirements specification document (2) Must be analyzed and confirmed by the stakeholders –may even include version 0 of user manual May be accompanied by the system test plan document

Ch. 718 The requirements specification document (3) As any large document, it must be modular –"vertical" modularity the usual decomposition, which may be hierarchical –"horizontal" modularity different viewpoints Defines both functional and non functional requirements

Ch. 719 A case study railway automation Who are the stakeholders? –management of the train company –train drivers and their unions –passengers (customers) –contractors Each has different goals

Ch. 720 Case study how to classify requirements Safety requirements –the probability of accidents should be less than per year Utility requirements –level of usefulness of the system as perceived by the various stakeholders

Ch. 721 Case study the produced document Introduction: the “mission” of the system Architecture: the main structure of the system Specific requirements associated with each subsystem –discussion of how the subsystems’ requirements guarantee that the overall goals are indeed achieved

Ch. 722 Software architecture and detailed design activity The result of this activity is a Design Specification Document Usually follows a company standard, which may include a standard notation, such as UML

Ch. 723 Coding and module testing activity Company wide standards often followed for coding style Module testing –based on black box/white box criteria

Ch. 724 Integration and system test activity These activities may be integrated with coding and module testing Integration may be done incrementally through subsystems –top down vs. bottom up The last step is system test –may be followed by alpha testing

Ch. 725 Delivery, deployment, and maintenance activities Delivery –real delivery may be preceded by beta testing Deployment –components allocated on physical architecture Maintenance –corrective, adaptive, perfective

Ch. 726 Maintenance Requirements errors are main cause of maintenance activities Late discovery of requirements errors causes increased costs

Ch. 727 Other software activities Documentation Verification Management They can be considered as parts of any kind of software related activity

Ch. 728 Overview of software process models

Ch. 729 Waterfall models Invented in the late 1950s for large air defense systems, popularized in the 1970s They organize activities in a sequential flow Exist in many variants, all sharing sequential flow style

Ch. 730 A waterfall model

Ch. 731 Critical evaluation of the waterfall model +sw process subject to discipline, planning, and management +postpone implementation to after understanding objectives –linear, rigid, monolithic no feedback no parallelism a single delivery date

Ch. 732 Waterfall with feedback

Ch. 733 Problems with waterfall Estimates made when limited knowledge available Difficult to gather all requirements once and for all –users may not know what they want –requirements cannot be frozen

Ch. 734 Evolutionary models Many variants available Product development evolves through increments –"do it twice" (F. Brooks, 1995) –evolutionary prototype Evolutionary process model (B. Boehm, 1988) "model whose stages consist of expanding increments of an operational software product, with the direction of evolution being determined by operational experience"

Ch. 735 Transformation model Guided by formal methods Specifications transformed into implementations via transformations Still a theoretical reference model

Ch. 736 Transformation model

Ch. 737 Spiral model B. Boehm, 1989

Ch. 738 A final model assessment(1) Waterfall –document driven Transformational –specification driven Spiral –risk driven

Ch. 739 A final model assessment(2) Flexibility needed to reduce risks –misunderstandings in requirements –unacceptable time to market Waterfall may be useful as a reference structure for documentation –describes the "rationale" a posteriori (Parnas and Clements, 1989)

Ch. 740 Software evolution Existing software must evolve because requirements change Re-engineering –process through which an existing system undergoes an alteration, to be reconstituted in a new form Reverse engineering –from an existing system to its documentation, which may not exist, or may be incomplete –includes program understanding –preventive maintenance

Ch. 741 Open source Regulates licensed software, specifying its use, copy, modification, and distribution rights Business does not derive from selling software, but rather from other, indirect activities (services, accessories, advertisement, etc.)

Ch. 742 Methodologies to organize the process

Ch. 743 SA/SD Structured Analysis/Structured Design 3 major conceptual tools for modeling –data flow diagrams functional specifications –data dictionaries centralized definitions –Structured English to describe transformation of terminal bubbles

Ch. 744 DFDs: a reminder

Ch. 745 Analysis of office work

Ch. 746 Unified Software Development Process (UP)

Ch. 747 Principles Development of an OO system Uses the UML notation throughout the process Supports an iterative and incremental process Decomposes a large process into controlled iterations (mini projects)

Ch. 748 Cycles and phases of a cycle milestone product release Inception Elaboration Construction Transition

Ch. 749 Distribution of workflows over phases

Ch. 750 Organizing artifacts Configuration management

Ch. 751 CM concepts Configuration –identifies components and their versions Configuration management –discipline of coordinating software development and controlling the change and evolution of software products and components

Ch. 752 Key CM issues Multiple access to shared repository Handling product families –different members of the family comprise components which may have different versions

Ch. 753 Member 1 A B C1 Member 2 A B C2 Member 3 A D A A B D E A C C Component database

Ch. 754 Versions Can be refined into –revisions new version supersedes the previous define a linear order –variants e.g., alternative implementations of the same specification for different machines, or access to different I/O devices

Ch. 755 Software standards

Ch. 756 Why standards? They are needed to achieve quality in both software products and processes They may be imposed internally or externally –e.g., MIL-STD 2167A imposed to contractors for military applications Other examples: ISO series, IEEE

Ch. 757 Main benefits From the developers' viewpoint –standards enforce a uniform behavior within an organization –they facilitate communication among people, stabilizes the production process, and makes it easier to add new people to ongoing projects From the customers' viewpoint –they make it easier to assess the progress and quality of results –they reduce the strict dependency of customers on specific contractors