320 likes | 588 Views
Object oriented systems development life cycle. Software development process that consists of analysis, design, implementation, testing and refinement is to transform users needs into a software solution that satisfies those needs. Software development process.
E N D
Object oriented systems development life cycle Software development process that consists of analysis, design, implementation, testing and refinement is to transform users needs into a software solution that satisfies those needs
Software development process • System development can be viewed as process. • The process can be divided into small, interacting phases sub-processes . The sub processes must be defined in a such way that are clearly spelled out, to allow each activity to be performed as independently • EACH SUB PROCESS MUST HAVE THE FOLLOWING
A description in terms of how it works. • Specification of the input required for the process • Specification of the output to be produced Software process can be viewed as a series of transformations
Where the output of one transformation becomes the input of the subsequent transformation. • In the first transformation, we translate the user’s requirement in to system requirements and responsibilities. We produce a software requirement specification (SRS). This is analysis phase.
In the second transformation the SRS is translated into a detailed design. • The detailed design should satisfy the user’s requirements and, at the same time , be sufficiently detailed to do the third transformation-produce a deployable product. • This includes equipment, procedures, people • This transformation also include how to embed the software developed within its operational environment-os, dbms, networking systems, etc
Problem statements Analysis Trans I What are the uses of the system Trans II Trans III Design Implementation Detail System Software Product
Example of software development process • Water Fall Model • Which starts with deciding • What is to be done (what is the problem) • Once the requirements have been determined , we next must decide • How to accomplish them.
This is followed by a step in which we do it , whatever ‘it’ has required us to do. • We then must test the result to see if we have satisfied the user’s requirements • Finally , we use what we have done
What How Do it Test Use
Building high-quality software • To achieve high quality in software we need to be able to answer the following questions • How do we determine when the system is ready for delivery? • Is it how an operational system that satisfies user’s needs? • Is it correct and operating as we thought it should? • Does it pass an evaluation process?
There are two basic approaches to system testing • Blum describes a means of system evaluation in terms of four quality measures: • Correspondence • Validation • Correctness • Verification
Correspondence measures how well be delivered system matches the needs of the operational environment , as described in the original requirement statements. • Validation is the task of predicting correspondence . True correspondence cannot be determined until the system is in the place.
Correctness measures the consistency of the product requirements with respect to the design specification . • Verification is the exercise of determining correctness. However correctness is the always objective.
Verification: Am I building the product right? • Validation: Am I building the right product.
Validation Verification Needs Requirements Design software Correctness Correspondence
Object-oriented systems development : A use case Driven Approach Object-oriented –use case driven Object-oriented design Prototyping Component-based development Incremental testing
Object-oriented design • The goal object-oriented design is to design the classes identified during the analysis phase and the user interface. • During this phase , we identify and define additional objects and classes that support implementation of the requirements.
Design and refine classes. • Design and refine attributes. • Design and refine methods. • Design and refine structures. • Design and refine associations.
Few guidelines • Reuse, rather than build, a new class. know the existing classes. • Design a large number of simple classes, rather than a small number of complex classes. • Design methods. • Evaluate What you have proposed. If possible , go back and refine the classes
Prototyping • A prototype is a version of a software product developed in the early stages of the product’s life cycle for specific, experimental purposes. • A prototype enables you to fully understand how easy or difficult it will be to implement some features of the system.
Types • A horizontal prototype is a simulation of the interface ( that is, it has the entire user interface that will be in the full-features system.) but contains no functionality. • This has the advantages of being very quick to implement
A vertical prototype is a subset of the system features with complete functionality. • The principal advantage of this method is that the few implemented functions can be tested in great depth.
Analysis prototype is an support for exploring the problem domain. • This class of prototype is used to inform the user and demonstrate the proof of a concept.
A Domain prototype is an support for the incremental development of the ultimate software solution.
Component Based Development • CBT is an industrialized approach to the software development process. • Application development moves from custom development to assembly of pre built, pre tested, reusable software components
Two basic ideas • The application development can be improved significantly if applications can be assembled quickly from prefabricated software components • Second, an increase large collection of interpretable software components could be made available to developers in both general and specialist catalogs.
Software components are the functional units of program, building blocks offering a collection of reusable services
Rapid Application development RAD is a set of tools and techniques that can be used to build an application faster than typically possible with traditional methods. The developer should scarifies the quality of the product for a quicker delivery
The main objective of RAD is to build a version of an application rapidly to see whether we actually have understood the problem analysis. • RAD involves number of iterations.
Incremental testing • If you wait after development to test an application for bugs and performance. • You could be wasting thousands of dollars and hours of time. • Our testing was very complete and good, but it was costing a lot of money and would add months onto a project • The problem was that developers would turn over applications to a quality assurance group for testing only development was competed
Reusability • A major benefit of object oriented system development is reusability • Has my problem already been solved? • Has my problem been partially solved? • What has been before to solve a problem similar to this one? • Summary information about existing software components
The reuse strategy can be used on the following • Information hiding (encapsulation). • Conformance to naming standards. • Creation and administration of an object repository. • Encouragement by strategic management of reuse as opposed to constant redevelopment. • Establishing targets for a percentage of the objects in the project to be reused.(50 percent of reuse of objects)