Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations

Presentation on theme: "The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design."— Presentation transcript:

1 The Software Product Life Cycle

2 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.

3 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.

4 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.

5 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.

6 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).

7 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.

8 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.

9 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

10 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.

11 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.

12 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.

13 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.

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

15 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.

16 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.

17 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.

18 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

19 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.

20 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.

21 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

22 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.

23 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

24 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.

25 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.

26 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

27 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.

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

Similar presentations

Ads by Google