The Software Product Life Cycle. Views of the Software Product Life Cycle Management Software engineering Engineering design Architectural design.
Published byModified over 4 years ago
Presentation on theme: "The Software Product Life Cycle. Views of the Software Product Life Cycle Management Software engineering Engineering design Architectural design."— Presentation transcript:
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.