The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.

Slides:



Advertisements
Similar presentations
Ninth Lecture Hour 8:30 – 9:20 pm, Thursday, September 13
Advertisements

Software Process Models
Software Project Management
1 Information Systems Development (ISD) Systems Development Life Cycle Overview of Analysis Phase Overview of Design Phase CP2236: Information Systems.
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Karolina Muszyńska Based on
Rational Unified Process
Chapter 6: Design of Expert Systems
Object-oriented Analysis and Design
1/31 CS 426 Senior Projects Chapter 1: What is UML? Chapter 2: What is UP? [Arlow and Neustadt, 2005] January 22, 2009.
Iterative development and The Unified process
From Inception to Elaboration Chapter 8 Applying UML and Patterns -Craig Larman.
Objectives Explain the purpose and various phases of the traditional systems development life cycle (SDLC) Explain when to use an adaptive approach to.
Introduction to Software Design Chapter 1. Chapter 1: Introduction to Software Design2 Chapter Objectives To become familiar with the software challenge.
Software Life Cycle Model
Chapter 6 View Alignment Techniques and Method Customization (Part I) Object-Oriented Technology From Diagram to Code with Visual Paradigm for UML Curtis.
Enterprise Architecture
Chapter 10 Architectural Design
Chapter 4 Requirements Engineering
S/W Project Management
UML - Development Process 1 Software Development Process Using UML (2)
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
RUP Fundamentals - Instructor Notes
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
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.
Rational Unified Process Fundamentals Module 4: Disciplines II.
Chapter 1: Introduction to Systems Analysis and Design
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
CEN rd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Phases of Software.
ACS 560 – SOFTWARE ENGINEERING Course Accomplishment Summary Shilpashree K.S Fall 2010 Purdue University – Fort Wayne Instructor – Dr. John Tanik.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Object-oriented Analysis and Design Stages in a Software Project Requirements Writing Analysis Design Implementation System Integration and Testing Maintenance.
CHECKPOINTS OF THE PROCESS Three sequences of project checkpoints are used to synchronize stakeholder expectations throughout the lifecycle: 1)Major milestones,
1 Introduction to Software Engineering Lecture 1.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
Fifth Lecture Hour 9:30 – 10:20 am, September 9, 2001 Framework for a Software Management Process – Life Cycle Phases (Part II, Chapter 5 of Royce’ book)
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Search Engine Optimization © HiTech Institute. All rights reserved. Slide 1 What is Solution Assessment & Validation?
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
J. Scott Hawker p. 1Some material © Rational Corp. Rational Unified Process Overview See and use the RUP Browser on lab machines.
PRJ566 Project Planning & Management Software Architecture.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
The principles of an object oriented software development process Week 04 1.
Winter 2011SEG Chapter 11 Chapter 1 (Part 1) Review from previous courses Subject 1: The Software Development Process.
Overview of RUP Lunch and Learn. Overview of RUP © 2008 Cardinal Solutions Group 2 Welcome  Introductions  What is your experience with RUP  What is.
Ivar Jacobson, Grady Booch, and James Rumbaugh The Unified Software Development Process Addison Wesley, : James Rumbaugh's OOMD 1992: Ivar Jacobson's.
Rational Unified Process (RUP)
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Your Interactive Guide to the Digital World Discovering Computers 2012 Chapter 12 Exploring Information System Development.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
 System Requirement Specification and System Planning.
Software Development Framework
Iterative development and The Unified process
Process 4 Hours.
Chapter 1: Introduction to Systems Analysis and Design
Business System Development
Chapter 6: Design of Expert Systems
Introduction to Software Engineering
Object Oriented Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Chapter 1: Introduction to Systems Analysis and Design
Presentation transcript:

The Software Product Life Cycle

Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design When synthesized these views for a coherent view of the entire software life cycle. A software architect will need to understand these views in order to work within them and communicate activities and progress.

Some Definitions  Phase – implies some interval of time; phases may be serial, each executing one at a time in a strict order, e.g., a product planning phase.  Activity – a particular type of work performed by an individual or group performed within a single phase or across multiple phases, e.g., object- oriented analysis.  Task – a specific schedulable item that might be identified in a project plan and assigned resources, e.g., implement a specific business object.

Management View  Goal oriented  Concerned with cost and schedule and overall quality  The four phases of this view are: 1. Inception 2. Elaboration 3. Construction 4. Transition  A product may undergo multiple development cycles during its entire life cycle. The subsequent cycles are called evolution cycles.

Inception Phase  Begins with the identification of a real or perceived need (the problem) and envisions a system that can satisfy the need.  The exit criteria are a product vision and a business case for the product.

Elaboration Phase  This is the planning and specification phase.  It involves requirements engineering.  Exit criteria are a specification of requirements (including quality attribute requirements) and an architectural concept (a high level design approach that addresses the requirements).

Construction Phase  This is where the product is implemented and tested.  The exit criteria is a complete version of the product that meets quality goals.

Transition Phase  This is where the product is transitioned to its users (the product is shipped).  This includes any manufacturing, delivering, training, and supporting.  The exit criteria are the final version of the product including software, supporting documentation, and training and support services.  The released version of the product may enter into a maintenance and support subphase where bug fixes and small enhancements are made.

Software Engineering View  Represents a software development project as multiple chains of activities running concurrently and overlapping.  The four main activities are: 1. Requirements analysis and specification 2. Design 3. Implementation and testing 4. Deployment and maintenance  Think of the input of each activity as a “what” and the output as a “how”.  Each activity maps to many phases of the management view

Requirements Analysis and Specification  This is the activity of gathering, identifying, and formalizing requirements in order to understand the problem.  The functional and nonfunctional specifications model the requirements using natural language prose, semiformal models like use cases and object-oriented analysis, or formal models using something like the Z notation.

Requirements Analysis and Specification (Cont’d)  The purpose of this activity is to capture enough information and knowledge to create an architectural description of a solution to the problem.  The software architect or architecture team should be the recipient of the requirements since requirements drive the architectural design.  Some of the requirements may be constraints on the system.

Design  This is the activity of transforming requirements specifications into a technically feasible solution.  Here is where design methods and design patterns are used.  The design activity encompasses classic object-oriented design as well as higher- level architectural design methods.

Design (Cont’d)  The result of design is a specification of how to build the application or system and the constraints on the implementation.  Design solutions may be specified informally or by using notations such as those in the UML.

Implementation and Testing  This is the activity that transforms the design into source code.  It also involves building and testing the system.

Deployment and Maintenance  This is the activity associated with delivering the system and deploying it so the end users can use it.  It also includes maintenance efforts required to fix defects and make minor enhancements to the system.

Engineering Design View  Considers the steps necessary to produce a complete design of the system.  The four steps (phases) are: 1. Product planning 2. Conceptual design 3. Embodiment design 4. Detail design  Each level focuses on a different level of abstraction and a different set of design objectives.

Product Planning: Specification of Information  This phase begins with a vision of a product or identification of a need.  It includes all the activities conducted during product inception.  The focus is on the core capabilities of the application or system and not necessarily on the identification of the required quality attributes or its complete functionality.

Conceptual Design: Specification of Principle  In this phase the domain problem is analyzed and structured and a set of working principles or solution concepts is created.  The output is a candidate architecture or architectures

Embodiment Design: Specification of Layout  In this phase the architectural design concepts identified during conceptual design are fleshed out and evaluated.  The output is a solidified architecture and possibly a prototype or skeleton of the application.

Detail Design: Specification of Production  This phase involves the production of the actual source code of the system and any detail design produced to help in the development of the code.  It may involve the production of certain diagrams.

Architectural View  This view is centered on the design of the application or system and how the design drives the development.  The phases of architecting are as follows: 1. Predesign phase 2. Domain analysis phase 3. Schematic design phase 4. Design development phase 5. Building phases

Predesign Phase  The architect is involved early in a project.  Predesign involves studying the entire enterprise context in which the application will be a part.

Domain Analysis Phase  During this phase the software architect strives to understand as completely as possible the needs of the acquirers and users and the application domain.  Domain analysis is one of the most important activities of software architecturing

Schematic Design Phase  This phase is where the architectural- level design is produced.  This phase requires considerable communication between architects and the various stakeholders.  Reviews and evaluations of the design an variations are conducted.

Design Development Phase  This phase focuses on refining the architectural description and selecting among alternatives.  A final design is produced that is detailed enough to assess risks and to make a decision whether to proceed with development.

Building Phases  The four building phases are: 1. Project documents phase -- Focuses on a construction plan, user interface style guide, and a test guide 2. Staffing or contracting phase -- Helps in the identification of a development team 3. Construction phase -- Ensures that what is built is valid with respect to the architectural description 4. Postconstruction phase -- Assists in the deployment of the system, training of users, and maintenance efforts

Summary  No one view captures the essence of the development cycle.  Each represents a different perspective or stakeholder point of view.  Each view contains some overlapping concepts and ways of visualizing the process.