GWU CSCI 210 - Software Life Cycle Processes

Unformatted text preview:

Abdelghani Bellaachia Page: 1 Software Life Cycle Processes ª Objective: • Establish a work plan to coordinate effectively a set of tasks. • Improves software quality. • Allows us to manage projects more easily. • Status of projects is more easily tracked. • Provides a baseline for improvement and measurement. ª Build-and-Fix Model: • Build a product without specs or any attempt at design • Rework the product to satisfy the client • It is not practical for product of reasonable size. • Approach: Build first versionModify until customer is satisfied MaintenanceAbdelghani Bellaachia Page: 2 ª Definition: “A life cycle is the course of development changes through which a project passes from its inception as a project request to the mature state as characterized by a stable production environment.” ª According to IEEE Std 12207 (ISO/IEC 12207), Standard for Information Technology -- Software life cycle processes: • Establishes a common framework for software life cycle processes that can be referenced by the software industry. • Lists processes that can be applied during the acquisition, supply, development, operation and maintenance of software and systems containing software. ª Development Process • Note that development often accounts for less than a third of the total project! • Once a system has been built, the time spent on maintenance will be greater than the time spent on all other phases • Maintenance takes around 60% of total cost. • But note that for a very successful system (say, Unix, or Microsoft Word), maintenance can continue for a very long time. • In fact, some describe developing software as the process of maintaining a blank sheet of paper!Abdelghani Bellaachia Page: 3 ª Different Processes: z Problem identification: someone identifies a problem, which needs addressing and might be susceptible to a computerized solution. z Requirements analysis: z It is much harder than people think. z Required features that should be included in a computerized solution to provide a cost-effective solution to the problem. z Capture what the customer wants. z Develop test plan: Develop test procedures to determine if a completed product correctly provides all of required features. z Develop software design: z Analyze the required features to identify existing software that can be reused in this product. z Changes needed in reused Components. z Create high level design for new components z For each component in high level design, develop detailed design. z Also develop unit test plan for each component.Abdelghani Bellaachia Page: 4 z Built and Document: z Develop code for each module. z Develop user documentation; help text, and operations manuals to support the use and operation of the system. z Validation: Test each module z Integration and comprehensive testing: Combine different modules into completed system and test the whole system. z Maintenance: Once a system has been built, the time spent on maintenance will be greater than the time spent on all other phases. z Production: Roll out the system to the users and monitor its performance.Abdelghani Bellaachia Page: 5 ª Examples of life cycle models: • Waterfall: development done in stages. Customer signs off on each stage before continuing to the next. This addresses the expense of changing requirements in later stages. • Evolutionary: interleave activities until it's decided that any new features would cost more than justified. • Formal transformation: produce formal, mathematical specification and transform this to create running system Advantages: if transformations are correct, final system is guaranteed to meet its specification Disadvantage: we can't apply these solutions to any reasonably sized system. • Assembly from reusable components: all new systems are just constructed from existing components requires large library of components • Spiral Model: build system in phases; each phase is divided into stages including (informally) planning, review, risk analysis, construction, and evaluation.Abdelghani Bellaachia Page: 6 ª The Waterfall Model • Royce, 1970 • Consists of a set of sequential steps that a project progresses through. • Each step must be completed before the project can progress to the next step. • At the end of each step is some form of gateway, usually a formal review where that decision is made. • There is no overlap between steps. • Straightforward, simple to understand and use. • Deliverables are frozen at the end of each phase and serve as the baseline for the following phases. • You do not see the software until the end of the project.Abdelghani Bellaachia Page: 7 • Approach: Requirements analysis and specification Design and Specification Integration and System Testing Coding and Module Testing Delivery MaintenanceAbdelghani Bellaachia Page: 8 • Description of each waterfall step: 1. Requirements analysis and specifications: • Qualities required for the product: ease of use, performance, portability, etc. • Goals: an understandable, precise, complete, and consistent specification document which all people involved in the realization of the product can understand 2. Design and specification: • Partition system into modules • Establish overall system architecture and the relationship between different modules (i.e., IS_COMPOSED_OF, USES, etc.) • It should be straightforward to transform design into working program • Result: a design specification document 3. Coding and module testing: • Code and test the pieces • Module testing is the main control quality carried in this step.Abdelghani Bellaachia Page: 9 4. Integration and system testing: • Part of the previous step in case of incremental development • Integrate modules • Test complete system: alpha testing 5. Delivery • Delivery for beta testing • Delivery for customer for production • Maintenance includes fixing errors, improving existing implementation, and adding new features 6. Maintenance • Cost of the maintenance is more than 60% of the total cost. • It consists of three categories: • Corrective maintenance: correction of any remaining errors • Adaptive maintenance: due to


View Full Document

GWU CSCI 210 - Software Life Cycle Processes

Download Software Life Cycle Processes
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Software Life Cycle Processes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Software Life Cycle Processes 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?