The document discusses the spiral model of software development. It has six key stages: customer communication, planning, risk analysis, engineering, construction/release, and customer evaluation. Each stage addresses different tasks like establishing communication, estimating costs/schedule, assessing/mitigating risks, building software representations, testing/deploying the software, and obtaining customer feedback. The model reduces risk and is well-suited for large, critical projects. However, it can be costly to develop.
The document discusses the spiral model of software development. It has six key stages: customer communication, planning, risk analysis, engineering, construction/release, and customer evaluation. Each stage addresses different tasks like establishing communication, estimating costs/schedule, assessing/mitigating risks, building software representations, testing/deploying the software, and obtaining customer feedback. The model reduces risk and is well-suited for large, critical projects. However, it can be costly to develop.
The document discusses the spiral model of software development. It has six key stages: customer communication, planning, risk analysis, engineering, construction/release, and customer evaluation. Each stage addresses different tasks like establishing communication, estimating costs/schedule, assessing/mitigating risks, building software representations, testing/deploying the software, and obtaining customer feedback. The model reduces risk and is well-suited for large, critical projects. However, it can be costly to develop.
The document discusses the spiral model of software development. It has six key stages: customer communication, planning, risk analysis, engineering, construction/release, and customer evaluation. Each stage addresses different tasks like establishing communication, estimating costs/schedule, assessing/mitigating risks, building software representations, testing/deploying the software, and obtaining customer feedback. The model reduces risk and is well-suited for large, critical projects. However, it can be costly to develop.
It is used for generating the software projects. In spiral model, an alternate solution is provided if the risk is found in the risk analysis, then alternate solutions are suggested and implemented. It is a combination of prototype and sequential model or waterfall model. In one iteration all activities are done, for large project's the output is small. A spiral model is divided into a number of framework activities, also called task regions. Typically, there are between three and six task regions. Spiral Model Task Regions Customer communication—tasks required to establish effective communication between developer and customer. Planning—tasks required to define resources, timelines, and other project related information. It includes estimating the cost, schedule and resources for the iteration. It also involves understanding the system requirements for continuous communication between the system analyst and the customer Risk analysis—tasks required to assess both technical and management risks. Identification of potential risk is done while risk mitigation strategy is planned and finalized Engineering—tasks required to build one or more representations of the application. It includes testing, coding and deploying software at the customer site Construction and release—tasks required to construct, test, install, and provide user support (e.g., documentation and training). Customer evaluation—tasks required to obtain customer feedback based on evaluation of the software representations created during the engineering stage and implemented during the installation stage. Evaluation of software by the customer. Also, includes identifying and monitoring risks such as schedule slippage and cost overrun The Spiral Model Advantages of Spiral Model It reduces high amount of risk. It is good for large and critical projects. It gives strong approval and documentation control. In spiral model, the software is produced early in the life cycle process.
Disadvantages of Spiral Model
It can be costly to develop a software model.
It is not used for small projects. The concurrent development model
The concurrent development model is called as concurrent model.
The communication activity has completed in the first iteration and exits in the awaiting changes state. The modeling activity completed its initial communication and then go to the underdevelopment state. If the customer specifies the change in the requirement, then the modeling activity moves from the under development state into the awaiting change state. The concurrent process model activities moving from one state to another state. One element of the concurrent process model The concurrent development model applications The concurrent process model is often used as the paradigm for the development of client/server applications. A client/server system is composed of a set of functional components. When applied to client/server, the concurrent process model defines activities in two dimensions A system dimension and a component dimension. System level issues are addressed using three activities: design, assembly, and use. The component dimension is addressed with two activities: design and realization. Advantages of the concurrent development model This model is applicable to all types of software development processes. It is easy for understanding and use. It gives immediate feedback from testing. It provides an accurate picture of the current state of a project.
Disadvantages of the concurrent development model
It needs better communication between the team members. This may not be achieved all the time. It requires to remember the status of the different activities. COMPONENT-BASED DEVELOPMENT This architecture focuses on the decomposition of the design into logical components which contain events, methods and properties. Component-Based architecture divides the problem into sub-problems and each problem associated with component partitions. It provides a higher level of abstraction than object- oriented design principles. It does not focus on issues such as communication protocols and shared state. Principles of Component-Based Architecture 1. Extensible A component can be extended from existing components to provide new behavior. 2. Replaceable Components may be readily substituted with other similar components. 3. Encapsulated Components exposes interfaces which allow the caller to use its functionality and hides the details of the internal processes or any internal variables or state. 4. Independent Components are independent. It can be designed to have minimal dependencies on other components. 5. Reusable Components are designed to be reused in different scenarios in different applications. 6. Not Context Specific Components are designed to operate in different environments and contexts. Specific information such as state data, should be passed to the component instead of being included in or accessed by the component. The Formal Methods Model The formal methods model encompasses a set of activities that leads to formal mathematical specification of computer software. Formal methods enable a software engineer to specify, develop, and verify a computer-based system by applying a rigorous, mathematical notation. A variation on this approach, called cleanroom software engineering.
The development of formal models is currently quite time
consuming and expensive. Because few software developers have the necessary background to apply formal methods, extensive training is required. It is difficult to use the models as a communication mechanism for technically unsophisticated customers.