Name: Shilpashree Srinivasamurthy Subject: ACS 560- Software Engineering Term: Fall 2010

advertisement
Name: Shilpashree Srinivasamurthy
Subject: ACS 560- Software Engineering
Term: Fall 2010
Chapter 5: Software Life Cycle and Methods
Textbook: Designing Concurrent, Distributed, and Real-Time Applications with
UML
This chapter describes various software life cycle models starting from the famous
Waterfall life cycle model through Spiral model and Unified Software Development
Process. This chapter takes a software life cycle perspective on software development.
The first section discuss about various Software Life Cycle Approaches.
- Waterfall Life Cycle Model: The waterfall model is an idealized process model
in which each phase is completed before the next phase is started, and the project
moves from one phase to the next without iteration or overlap.
Limitations of Waterfall model:
1. Problem: Software requirements, a key factor in any software
development project, are not properly tested until a working system is
available to demonstrate to the end-users.
Solution: Throwaway Prototypes can be used to help clarify user
requirements. This approach is useful for getting feedback on the user
interface and can be used for systems that have a complex user
interface.
2. Problem: A working system becomes available only late in the life
cycle. Thus a major design or performance problem might be
undetected till the system is almost operational, at which time it is too
late to take effective action.
Solution: Evolutionary prototyping is a form of incremental
development in which the prototype evolves through several
intermediate operational systems into the delivered system.
- Spiral Model: Spiral model is risk-driven. In the spiral model, the radial
coordinate represents cost and the angular coordinate represents progress in
completion of a cycle of the model. The spiral model consists of the four
quadrants namely Define Objectives, Alternatives and Constraints (I quadrant),
Analyze Risks (II quadrant), Develop Product (III quadrant) and Plan Next Cycle
(IV quadrant). Each cycle of the spiral model iterates through these four
quadrants. The number of cycles is project-specific.
- The Unified Software Development Process: The Unified Software
Development Process (USDP) is a use case –driven software process that uses the
UML notation. The USDP consists of five core workflows and four phases and is
iterative. Each cycle goes through all four phases and addresses the development
of a core workflow. The workflows of USDP are Requirements, Analysis, Design,
Implementation and Test. The life cycle phases of USDP are Inception,
Elaboration, Construction and Transition.
The next section talks about Design Verification and Validation by briefly discussing
about software quality assurance and performance analysis of software designs.
- Software Quality Assurance: Software quality assurance is a set of activities
whose goal is to ensure the quality of the software product. Software verification
and validation are important goals of software quality assurance.
- Performance Analysis of Software Designs: Analyzing the performance of the
real-time design before implementation of the real-time applications, to estimate
whether the design will meet its performance goals is known as performance
analysis.
The next section of the chapter describes various types of Software Testing for
concurrent and real-time systems.
- Unit Testing: In unit testing, an individual component is tested before it is
combined with other components. Unit Testing is a white box testing approach
that requires the knowledge of the internals of the software
- Integration Testing: Integration testing involves combining tested components
into progressively more complex groupings of components and then testing these
groupings until the whole software system has been put together and the
interfaces tested. Integration testing is also a white box testing.
- System Testing: System testing is the process of testing an integrated hardware
and software system to verify that the system meets its specified requirements.
During system testing several aspects of concurrent or real-time system need to ne
tested which includes Functional Testing, Load (stress) Testing and Performance
Testing. This is a black box testing approach based on the software requirements
specification.
- Acceptance Testing: The organization usually carries out acceptance testing,
typically at the user installation, prior to acceptance of the system.
The chapter then briefly describes the evolution of software design methods, object
oriented analysis and design methods, and real-time design methods.
Download