1 / 27

The Software Product Life Cycle

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

binah
Download Presentation

The Software Product Life Cycle

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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: • Inception • Elaboration • Construction • 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: • Requirements analysis and specification • Design • Implementation and testing • 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: • Product planning • Conceptual design • Embodiment design • 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: • Predesign phase • Domain analysis phase • Schematic design phase • Design development phase • 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: • Project documents phase -- Focuses on a construction plan, user interface style guide, and a test guide • Staffing or contracting phase -- Helps in the identification of a development team • Construction phase -- Ensures that what is built is valid with respect to the architectural description • 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.

More Related