Chapter 3 Software Process Model-2
Chapter 3 Software Process Model-2
Prescriptive Model Waterfall Model or Linear Sequential Incremental Process Models Incremental Model RAD Model Evolutionary Process Models Prototyping Spiral Model Concurrent Development Model Fourth Generation Techniques (4GT) Component based development (CBD)
Informal Requirements
Process Product
Problems
The assumption is that requirements can be fully understood prior to development Interaction with the customer occurs only at the beginning (requirements) and end (after delivery) Unfortunately the assumption almost never holds
Process Product
feedback
Advantages
Reduce risks by improving visibility Allow project changes as the project progresses
based on feedback from the customer
Prescriptive Model
Prescriptive process models advocate an orderly approach to software engineering Organize framework activities in a certain order Process framework activity with set of software engineering actions. Each action in terms of a task set that identifies the work to be accomplished to meet the goals. The resultant process model should be adapted to accommodate the nature of the specific project, people doing the work, and the work environment. Software engineer choose process framework that includes activities like; Communication Planning Modeling Construction Deployment
Prescriptive Model
Calling this model as Prescribe because it recommend a set of process elements, activities, action task, work product & quality. Each elements are inter related to one another (called workflow).
Delivers software in small but usable pieces, each piece builds on pieces already delivered
Makes heavy use of reusable software components with an extremely short development cycle
RAD model
Communication to understand business problem. Planning multiple s/w teams works in parallel on diff. system. Modeling Business modeling Information flow among business is working. Ex. What kind of information drives? Who is going to generate information? From where information comes and goes? Data modeling Information refine into set of data objects that are needed to support business. Process modeling Data object transforms to information flow necessary to implement business.
Construction it highlighting the use of pre-existing software component. Deployment Deliver to customer basis for subsequent iteration. RAD model emphasize a short development cycle. High speed edition of linear sequential model. If requirement are well understood and project scope is constrained then it enable development team to create fully functional system within a very short time period.
RAD Model
If application is modularized (Scalable Scope), each major function to be completed in less than three months. Each major function can be addressed by a separate team and then integrated to form a whole. Drawback: For large but scalable projects RAD requires sufficient human resources Projects fail if developers and customers are not committed in a much shortened time-frame Problematic if system can not be modularized Not appropriate when technical risks are high ( heavy use of new technology)
Prototyping cohesive
Best approach when: Objectives defines by customer are general but does not have details like input, processing, or output requirement. Developer may be unsure of the efficiency of an algorithm, O.S., or the form that human machine interaction should take. It can be used as standalone process model. Model assist software engineer and customer to better understand what is to be built when requirement are fuzzy. Prototyping start with communication, between a customer and software engineer to define overall objective, identify requirements and make a boundary. Going ahead, planned quickly and modeling (software layout visible to the customers/end-user) occurs. Quick design leads to prototype construction. Prototype is deployed and evaluated by the customer/user. Feedback from customer/end user will refine requirement and that is how iteration occurs during prototype to satisfy the needs of the customer.
Prototyping (cont..)
Prototype can be serve as the first system. Both customers and developers like the prototyping paradigm.
Customer/End user gets a feel for the actual system Developer get to build something immediately.
Problem Areas: Customer cries foul and demand that a few fixes be applied to make the prototype a working product, due to that software quality suffers as a result. Developer often makes implementation in order to get a prototype working quickly without considering other factors in mind like OS, Programming language, etc. Customer and developer both must be agree that the prototype is built to serve as a mechanism for defining requirement.
Spiral Model
Couples iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model It provide potential for rapid development of increasingly more complete version of the software. Using spiral, software developed in as series of evolutionary release. Early iteration, release might be on paper or prototype. Later iteration, more complete version of software. Divided into framework activities (C,P,M,C,D). Each activity represent one segment. Evolutionary process begins in a clockwise direction, beginning at the center risk. First circuit around the spiral might result in development of a product specification. Subsequently, develop a prototype and then progressively more sophisticated version of software. Unlike other process models that end when software is delivered. It can be adapted to apply throughout the life of software.
Spiral Model
Spiral models uses prototyping as a risk reduction mechanism but, more important, enables the developer to apply the prototyping approach at each stage in the evolution of the product. It maintains the systematic stepwise approach suggested by the classic life cycle but also incorporates it into an iterative framework activity. If risks cannot be resolved, project is immediately terminated Problem Area: It may be difficult to convince customers (particularly in contract situations) that the evolutionary approach is controllable. If a major risk is not uncovered and managed, problems will undoubtedly occur.
E.g. The analysis activity (existed in the none state while initial customer communication was completed) now makes a transition into the under development state. Analysis activity moves from the under development state into the awaiting changes state only if customer indicates changes in requirements. Series of event will trigger transition from state to state. E.g. During initial stage there was inconsistency in design which was uncovered. This will triggers the analysis action from the Done state into Awaiting Changes state.
4GT
Like all other models, 4GT begins with a requirements gathering phase. Ideally, the customer would describe the requirements, which are directly translated into an operational prototype. Practically, however, the client may be unsure of the requirements, may be ambiguous in his specs or may be unable to specify information in a manner that a 4GT tool can use. For small applications, it may be possible to move directly from the requirements gathering phase to the implementation phase using a nonprocedural fourth generation language. However for larger projects a design strategy is necessary. Otherwise, the same difficulties are likely to arise as with conventional approaches.
4GT
To transform a 4GT implementation into a product, the developer must conduct thorough testing, develop meaningful documentation. In addition, the 4GT developed software must be built in a manner that enables maintenance to be performed quickly. Merits: Dramatic reduction in software development time. (For small and intermediate application) Improved productivity for software developers. Demerits: Not much easier to use as compared to programming languages The maintainability of large software systems built using 4GT is open to question.
4GT
4GT Software tool is used to generate the source code for a software system from a high level specification representation Commonly used 4GT in development models are mentioned below:
Report Generation Data base query language Data Manipulation Screen definition and interaction Code Generation Web engineering Tools high-level graphics
CBD Model