SOFTWARE ENGINEERING - Vilniaus universitetasragaisis/PSI_inf2019/SE-02-Life_cycle_2019.… ·...
Transcript of SOFTWARE ENGINEERING - Vilniaus universitetasragaisis/PSI_inf2019/SE-02-Life_cycle_2019.… ·...
SOFTWARE ENGINEERING
SOFTWARE-LIFE CYCLE AND ITS
MODELS
Saulius Ragaišis
SOFTWARE LIFE CYCLE
Definitions from Google
• The phases a software product goes through between when it is conceived and when it is no longer available for use.
The Free On-line Dictionary of Computing, Denis Howe 2010
• A series of stages in the development of an application and is often used in Software Engineering.David Bolton, About.com
Standards of Life cycle processes
• ISO/IEC 12207:2008. Systems and software engineering — Software life cycle processes
• ISO/IEC 15288:2008. Systems and software engineering — System life cycle processes
Definitions in standards
• Life cycle - evolution of a system, product, service, project or other human-made entity from conception through retirement.
• Life cycle model - framework of processes and activities concerned with the life cycle that may be organized into stages, which also acts as a common reference for communication and understanding.
[ISO/IEC 12207:2008]
Software life cycle processes (ISO/IEC 12207-2008)
LIFE CYCLE MODELS
Life cycle models and stages
The life of a system/software can be modeled by a life cycle model consisting of stages. Models may be used to represent the entire life from concept to disposal or to represent the portion of the life corresponding to the current project. The life cycle model is comprised of a sequence of stages that may overlap and/or iterate, as appropriate for the project's scope, magnitude, complexity, changing needs and opportunities. [ISO/IEC 12207:2008]
1970
Development according W. W. Royce
1968... “Iterative development”
“Rocket science!”
Generic process framework activities*
• Communication
• Planning
• Modeling
• Construction
• Deployment
* They will be used to present different life cycle models.
Waterfall model
Incremental model
Spiral model
RAD model
Prototyping
Unified Process
• An extensible framework which should be customized for specific organizations or projects.
• Proposed by Ivar Jacobson, Grady Booch and James Rumbaugh. The first book “The Unified Software Development Process” (ISBN 0-201-57169-2) published in 1999.
UP refinements and variations
• Rational Unified Process (RUP), the IBM / Rational Software development process
• Oracle Unified Method (OUM), the Oracle development and implementation process
• Agile Unified Process (AUP), a lightweight variation developed by Scott W. Ambler
• Essential Unified Process (EssUP), a lightweight variation developed by Ivar Jacobson
• Enterprise Unified Process (EUP), an extension of the Rational Unified Process
…
UP characteristics
• Iterative and Incremental
• Use Case Driven
• Architecture Centric
• Risk Focused
UP project life-cycle
UP major work products: Inception
• Vision document
• Initial use-case model
• Initial project glossary
• Initial business case
• Initial risk assessment
• Project plan (phases and iterations)
• Business model (if necessary)
• One or more prototypes
UP major work products: Elaboration
• Use-case model
• Supplementary requirements including non-functional
• Analysis model
• Software architecture description
• Executable architectural prototype
• Preliminary design model
• Revised risk list
• Project plan including iteration plan, adapted workflows, milestones, technical work products
• Preliminary user manual
UP major work products: Construction
• Design model
• Software components
• Integrated software increment
• Test plan and procedure
• Test cases
• Support documentation (user manuals, installation
manuals, description of current increment)
UP major work products: Transition
• Delivered software increment
• Beta test reports
• General user feedback
What we have learned?
• Concept of software life cycle
• Understanding of software life cycle processes
• Software life cycle models
QUESTIONS?
APPENDIX
Life cycle process groups (ISO/IEC 12207-2008)
System Life Cycle Processes
• Agreement Processes (2 processes)
• Organizational Project-Enabling Processes (5 p.)
• Project Processes (7 p.)
• Technical Processes (11 p.)
Software Life Cycle Processes
• Software Implementation Processes (7 p.)
• Software Support Processes (8 p.)
• Software Reuse Processes (3 p.)
Agreement Processes
• Acquisition Process
• Supply Process
Organizational Project-Enabling Processes
• Life Cycle Model Management Process
• Infrastructure Management Process
• Project Portfolio Management Process
• Human Resource Management Process
• Quality Management Process
Project Processes
• Project Planning Process
• Project Assessment and Control Process
• Decision Management Process
• Risk Management Process
• Configuration Management Process
• Information Management Process
• Measurement Process
Technical Processes
• Stakeholder Requirements Definition Process
• System Requirements Analysis
• System Architectural Design
• Implementation Process
• System Integration Process
• System Qualification Testing Process
• Software Installation
• Software Acceptance Support
• Software Operation Process
• Software Maintenance Process
• Software Disposal Process
Software Implementation Processes
• Software Implementation Process
• Software Requirements Analysis Process
• Software Architectural Design Process
• Software Detailed Design Process
• Software Construction Process
• Software Integration Process
• Software Qualification Testing Process
Software Support Processes
• Software Documentation Management Process
• Software Configuration Management Process
• Software Quality Assurance Process
• Software Verification Process
• Software Validation Process
• Software Review Process
• Software Audit Process
• Software Problem Resolution Process
Software Reuse Processes
• Domain Engineering Process
• Reuse Asset Management Process
• Reuse Program Management Process