Your SlideShare is downloading. ×
Software engineering 25 models details
Upcoming SlideShare
Loading in...5

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Software engineering 25 models details


Published on

25 models of Software Engineering …

25 models of Software Engineering
-Best uses

Published in: Education, Technology

  • Be the first to comment

  • Be the first to like this

No Downloads
Total Views
On Slideshare
From Embeds
Number of Embeds
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

No notes for slide


  • 1. Software Engineering [Date] Assignment Samiul Al Hossaini 11-18569-1 Section : B
  • 3. WATERFALL MODEL INTRODUCTION The Waterfall Model was first Process Model to be introduced. It is also referred to as a linear-sequential life cycle model. It is very simple to understand and use. In a waterfall model, each phase must be completed fully before the next phase can begin. At the end of each phase, a review takes place to determine if the project is on the right path and whether or not to continue or discard the project. In waterfall model phases do not overlap. DIAGRAM ADVANTAGES Simple and easy to understand and use. Easy to manage due to the rigidity of the model – each phase has specific deliverables and a review process. Phases are processed and completed one at a time. Works well for smaller projects where requirements are very well understood. DISADVANTAGES Once an application is in the testing stage, it is very difficult to go back and change something that was not well-thought out in the concept stage. No working software is produced until late during the life cycle. High amounts of risk and uncertainty. Not a good model for complex and object-oriented projects. Poor model for long and ongoing projects. Not suitable for the projects where requirements are at a moderate to high risk of changing. BEST USES Requirements are very well known, clear and fixed.
  • 4. Product definition is stable. Technology is understood. There are no ambiguous requirements Ample resources with required expertise are available freely The project is short. SIMILAR MODELS Similar to Watefall model is V-Model BETTER MODELS Most of the agile process models are considered better than waterfall as they are more successful in real time. INCREMENTAL MODEL INTRODUCTION In incremental model the whole requirement is divided into various builds. Multiple development cycles take place here, making the life cycle a “multi-waterfall” cycle. Cycles are divided up into smaller, more easily managed modules. Each module passes through the requirements, design, implementation and testing phases. A working version of software is produced during the first module, so you have working software early on during the software life cycle. Each subsequent release of the module adds function to the previous release. The process continues till the complete system is achieved. DIAGRAM ADVANTAGES Generates working software quickly and early during the software life cycle. More flexible – less costly to change scope and requirements. Easier to test and debug during a smaller iteration. Customer can respond to each built. Lowers initial delivery cost. Easier to manage risk because risky pieces are identified and handled during it’d iteration.
  • 5. DISADVANTAGES Needs good planning and design. Needs a clear and complete definition of the whole system before it can be broken down and built incrementally. Total cost is higher than waterfall. BEST USES Requirements of the complete system are clearly defined and understood. Major requirements must be defined; however, some details can evolve with time. There is a need to get a product to the market early. A new technology is being used Resources with needed skill set are not available There are some high risk features and goals. SIMILAR MODELS Iterative and incremental models. BETTER MODELS Agile models. SPIRAL MODEL INTRODUCTION The spiral model is similar to the incremental model, with more emphasis placed on risk analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and Evaluation. A software project repeatedly passes through these phases in iterations (called Spirals in this model). The baseline spiral, starting in the planning phase, requirements are gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral. Requirements are gathered during the planning phase. In the risk analysis phase, a process is undertaken to identify risk and alternate solutions. A prototype is produced at the end of the risk analysis phase. Software is produced in the engineering phase, along with testing at the end of the phase. The evaluation phase allows the customer to evaluate the output of the project to date before the project continues to the next spiral. DIAGRAM
  • 6. ADVANTAGES High amount of risk analysis hence, avoidance of Risk is enhanced. Good for large and mission-critical projects. Strong approval and documentation control. Additional Functionality can be added at a later date. Software is produced early in the software life cycle. DISADVANTAGES Can be a costly model to use. Risk analysis requires highly specific expertise. Project’s success is highly dependent on the risk analysis phase. Doesn’t work well for smaller projects. BEST USES When costs and risk evaluation is important For medium to high-risk projects Long-term project commitment unwise because of potential changes to economic priorities Users are unsure of their needs Requirements are complex New product line Significant changes are expected (research and exploration) SIMILAR MODELS Incremental models. BETTER MODELS Agile models.
  • 7. CONCURRENT PROCESS MODEL INTRODUCTION The concurrent process model sometimes called concurrent engineering allows to a software team to represent iterative and concurrent elements of any process model. The steps of concurrent process model are modeling, communication and construction. Concurrent modeling defines a series of events that will trigger transition from one state to another state. The modeling completed under development state. However the customer requirements must be made and the under development state into the awaiting state. DIAGRAM ADVANTAGES Applicable for all kinds of development process. Defines a process network. Each activity action or events are exist simultaneously with other activities. DISADVANTAGES Analysis and designs are complex task according to requirements. BEST USES Useful in using iterative and concurrent elements. SIMILAR MODELS Can be applied with all types of process model.
  • 8. COMPONENT BASED MODEL INTRODUCTION The component based model incorporates many of the characteristics of the spiral model. It is evolutionary in nature and demands an iterative approach to the creation of the software. However, the component based development model composes application from prepackaged software components (called classes). The process begins with the identification of classes. The algorithms that needs to be applied and the data that needs to be applied are packaged into a class. DIAGRAM ADVANTAGES  The component based development model leads to software re-used and re-usability provides a number of tangible benefits.  It leads to reduction in development cycle time.  It leads to significant reduction in project cost.  It leads to significant increase in productivity. DISADVANTAGES  Compromises in requirements are needed.  Less control over the system's evolution. BEST USES It provides a clear view about software re usability. SIMILAR MODELS Special models.
  • 9. FORMAL METHOD MODEL INTRODUCTION The formal method model is the collection of activities that leads to formal mathematical specification of computer software. It is enables to specify develop and verify a computer based system by mathematical notation. It is started with collection of activities for verifying computer software project. DIAGRAM ADVANTAGES Enables to correct errors when using formal methods. Identifies the undetected problems. DISADVANTAGES Time consuming and expensive. Developer needs necessary background and extra training. Difficult to use communication method. BEST USES Specification, development and verification. SIMILAR MODELS Other safety based models.
  • 10. ASPECT ORIENTED DEVELOPMENT INTRODUCTION Aspect-Oriented Software Development focuses on the identification, specification and representation of cross-cutting concerns and their modularization into separate functional units as well as their automated composition into a working system. AOSD often refers aspect oriented programming (AOP) is a relatively new software engineering paradigm that provides a process and methodological approach. DIAGRAM ADVANTAGES Common systematic approach. Collaborative work, distribution and memory management. Each aspects detail has a number of properties. DISADVANTAGES It not yet matured. Adoption characteristic. BEST USES It is essential to instantiate asynchronous communication between the software process activities applied to the engineering and construction of aspects and components. SIMILAR MODELS It is likely to adopt characteristics of both evolutionary and concurrent process model. UNIFIED PROCESS INTRODUCTION The Unified Process recognizes the importance of customer communication and streamlined methods for describing the customer’s view of a system. It emphasizes the important role of software architecture and “helps the architect focus on the right goals, such as understandability, reliance to future changes, and reuse”. It suggests a process flow that is iterative and incremental, providing the evolutionary feel that is essential in modern software development.In some ways the Unified Process is an attempt to draw on the best features and characteristics of traditional software process models, but characterize them in a way that implements many of the best principles of agile software development.
  • 11. DIAGRAM ADVANTAGES This is a complete methodology in itself with an emphasis on accurate documentation It is proactively able to resolve the project risks associated with the client's evolving requirements requiring careful change request management Less time is required for integration as the process of integration goes on throughout the software development life cycle. The development time required is less due to reuse of components. There is online training and tutorial available for this process. DISADVANTAGES The team members need to be expert in their field to develop a software under this methodology. The development process is too complex and disorganized. On cutting edge projects which utilize new technology, the reuse of components will not be possible. Hence the time saving one could have made will be impossible to fulfill. Integration throughout the process of software development, in theory sounds a good thing. But on particularly big projects with multiple development streams it will only add to the confusion and cause more issues during the stages of testing BEST USES Develop Iteratively Manage Requirements SIMILAR MODELS RUP
  • 12. PERSONAL SOFTWARE PROCESS (PSP) INTRODUCTION The Personal Software Process (PSP) started in 1995 and promised to improve individual software engineering practice. PSP addresses in particular the software quality in terms of defect densities and the process quality in terms of defect prevention (yield) and predictability of development time and size of the software products. Steps are Planning High-level design High-level design review Development DIAGRAM ADVANTAGES PSP represents a disciplined, metrics-based approach to software engineering that may lead to culture shock for many practitioners. DISADVANTAGES It has more to do with human nature and organizational inertia than they do with the strengths and weaknesses of the PSP approach. PSP is intellectually challenging and demands a level of commitment (by practitioners and their managers) that is not al- ways possible to obtain. Training is relatively lengthy, and training costs are high. The required level of measurement is culturally difficult for many software people. BEST USES Useful to using in metrics based approach. SIMILAR MODELS TSP
  • 13. TEAM SOFTWARE PROCESS (TSP) INTRODUCTION The goal of TSP is to build a “self- directed” project team that organizes itself to produce high-quality software. TSP defines the following framework activities: project launch, high-level design, implementation, integration and test, and postmortem. Like their counterparts in PSP (note that terminology is somewhat different), these activities enable the team to plan, design, and construct software in a disciplined manner while at the same time quantitatively measuring the process and the product. The postmortem sets the stage for process improvements. DIAGRAM ADVANTAGES Has consistent understand of overall goals. Defines rules and responsibilities for each team member. Track quantities project data. Defines local standards. Reports project status. DISADVANTAGES Workflow concurrency is very much needed in this process. Less flexibility among team members. BEST USES Team software process used when a organization focuses a full progress to a project and its quality. SIMILAR MODELS PSP
  • 14. EXTREME PROGRAMMING (XP) INTRODUCTION Extreme Programming (XP) marks a departure from the conventional programming approach. It stresses importance to individuals and interactions over processes and tools, working software over documentation, customer collaboration over contract negotiation, and responding to change over following a plan. DIAGRAM ADVANTAGES Robustness Resilience Cost Savings Lesser Risks Employee Satisfaction DISADVANTAGES The biggest disadvantage of Extreme Programming is that it assumes the constant involvement of the customer. Its success depends on data collection at many stages of the development process. Many customers might not be available, and many others might dislike such constant involvement. Extreme Programming code is a centered approach rather than a design-centered approach, and the lack of proper documentation creates problems in large products when project members leave and new members come in later. BEST USES When frequent changes come in consideration. SIMILAR MODELS Other agile models.
  • 15. ADAPTIVE SOFTWARE DEVELOPMENT (ASD) INTRODUCTION Adaptive Software Development (ASD) is a software development process that grew out of rapid application development work by Jim Highsmith and Sam Bayer. It embodies the principle that continuous adaptation of the process to the work at hand is the normal state of affairs. Adaptive Software Development replaces the traditional waterfall cycle with a repeating series of speculate, collaborate, and learn cycles. This dynamic cycle provides for continuous learning and adaptation to the emergent state of the project. The characteristics of an ASD life cycle are that it is mission focused, feature based, iterative, time boxed, risk driven, and change tolerant. DIAGRAM ADVANTAGES ASD’s overall emphasis on the dynamics of self-organizing teams, interpersonal collaboration, and individual and team learning yield software project teams that have a much higher likelihood of success. DISADVANTAGES Based on short iteration which sometimes makes small mistakes. BEST USES For interpersonal collaboration, learning skills, dynamic self-organizing team. SIMILAR MODELS Similarities with incremental and team software development.
  • 16. SCRUM INTRODUCTION Agile Scrum is the process of speedy development of software which includes a series of iterations or sprints to produce the software required. It is a methodology which brings even the slowest of projects which appear to be going nowhere, onto the fast track. DIAGRAM ADVANTAGES Agile scrum helps the company in saving time and money. Scrum methodology enables projects where the business requirements documentation is hard to quantify to be successfully developed. Fast moving, cutting edge developments can be quickly coded and tested using this method, as a mistake can be easily rectified. It is a lightly controlled method which insists on frequent updating of the progress in work through regular meetings. Thus there is clear visibility of the project development. Like any other agile methodology, this is also iterative in nature. It requires continuous feedback from the user. Due to short sprints and constant feedback, it becomes easier to cope with the changes. Daily meetings make it possible to measure individual productivity. This leads to the improvement in the productivity of each of the team members. Issues are identified well in advance through the daily meetings and hence can be resolved in speedily It is easier to deliver a quality product in a scheduled time. Agile Scrum can work with any technology/ programming language but is particularly useful for fast moving web 2.0 or new media projects. The overhead cost in terms of process and management is minimal thus leading to a quicker, cheaper result. DISADVANTAGES Agile Scrum is one of the leading causes of scope creep because unless there is a definite end date, the project management stakeholders will be tempted to keep demanding new functionality is delivered.
  • 17. If a task is not well defined, estimating project costs and time will not be accurate. In such a case, the task can be spread over several sprints. If the team members are not committed, the project will either never complete or fail. It is good for small, fast moving projects as it works well only with small team. This methodology needs experienced team members only. If the team consists of people who are novices, the project cannot be completed in time. BEST USES When mistakes are likely to happen. SIMILAR MODELS Other agile models. DYNAMIC SYSTEMS DEVELOPMENT METHOD (DSDM) INTRODUCTION Dynamic systems development method (DSDM) is an agile project delivery framework, primarily used as a software development method. First released in 1994, DSDM originally sought to provide some discipline to the rapid application development (RAD) method. In 2007 DSDM became a generic approach to project management and solution delivery. DSDM is an iterative and incremental approach that embraces principles of agile development, including continuous user/customer involvement. DIAGRAM ADVANTAGES • Focus on what the business needs • Deliver work on time • Collaborate effectively
  • 18. • Never, ever compromise quality • Build the project incrementally using solid foundations DISADVANTAGES Licensing cost Relatively high barrier to entry Cultural shift in organization BEST USES When delivery time is very much restricted. SIMILAR MODELS The DSDM has similarities with prototyping in two principles. One is frequent deliver and other is increment development. CRYSTAL INTRODUCTION The Crystal family is actually a set of example agile processes that have been proven effective for different types of projects. The intent is to allow agile teams to select the member of the crystal family that is most appropriate for their project and environment. DIAGRAM ADVANTAGES Crystal promotes early, frequent delivery of working software, high user involvement, adaptability, and the removal of bureaucracy or distractions. DISADVANTAGES Not a good approach if the development needs heavyweight solution.
  • 19. BEST USES Best if these are needed: Frequent delivery Reflective improvement Close or osmotic communication Personal safety FEATURE-DRIVEN DEVELOPMENT (FDD) INTRODUCTION Like other agile approaches, FDD adopts a philosophy that (1) emphasizes collaboration among people on an FDD team; (2) manages problem and project complexity using feature-based decomposition followed by the integration of software increments, and (3) communication of technical detail using verbal, graphical, and text-based means. FDD emphasizes software quality assurance activities by encouraging an incremental development strategy, the use of design and code inspections, the application of software quality assurance audits, the collection of metrics, and the use of patterns (for analysis, design, and construction). DIAGRAM ADVANTAGES Because features are small blocks of deliverable functionality, users can describe them more easily; understand how they relate to one another more readily; and better review them for ambiguity, error, or omissions. Features can be organized into a hierarchical business-related grouping. Since a feature is the FDD deliverable software increment, the team develops operational features every two weeks. Because features are small, their design and code representations are easier to inspect effectively. Project planning, scheduling, and tracking are driven by the feature hierarchy, rather than an arbitrarily adopted software engineering task set. DISADVANTAGES 1. Not as powerful on smaller projects (i.e., one developer, only one person modeling) 2. High reliance on chief programmer. He act as coordinator, lead designer, and mentor. 3. No written documentation.
  • 20. BEST USES As projects grow in size and complexity, ad hoc project management is often inadequate. This is when FDD comes in to play. LEAN SOFTWARE DEVELOPMENT (LSD) INTRODUCTION Lean software development (LSD) is a translation of lean manufacturing and lean IT principles and practices to the software development domain. Adapted from the Toyota Production System, a pro-lean subculture is emerging from within the agile community. DIAGRAM ADVANTAGES Eliminate waste Amplify learning Decide as late as possible Deliver as fast as possible Empower the team Build integrity in See the whole DISADVANTAGES The project is highly dependent on cohesiveness of the team and the individual commitments of the team members. In most professions this could be a really major factor, but in IT working long and unsociable hours is the norm so it shouldn't really be a huge disadvantage. And of course if you didn't realize that IT developers and testers work long, long hours then you are in for a rude awakening. For example I manage large projects and programmers and last weekend I worked 33 hours of the 48 hours available in leading the diagnosis and fixing of a major issue affecting my project. Success in the project depends on how disciplined the team members are and how exceptional are their technical skills. If you don't have a team of individuals with good skills which complement each other, then you have an immediate problem.
  • 21. BEST USES Best uses of LSD process model when establishing mechanism to improve, ensuring the testing finds errors as many as possible, assessing cost and schedule impact etc. AGILE MODELING (AM) INTRODUCTION Agile Modeling (AM) is a practice-based methodology for effective modeling and documentation of softwarebased systems. At a high level AM is a collection of best practices, depicted in the pattern language map below. At a more detailed level AM is a collection of values, principles, and practices for modeling software that can be applied on a software development project in an effective and light-weight manner. DIAGRAM ADVANTAGES AM (agile model) uses for specific information purpose. It has some principles like model with purpose, use multiple models, travel multiple models, content is more important than representation, know the models and tools and adapt locally. The problem can be portioned effectively among the people. Quality can be assessed. All constitutes can better understand. DISADVANTAGES Active user involvement and close collaboration are required throughout the development cycle. Requirements emerge and evolve throughout the development. Agile requirements are barely sufficient. BEST USES The agile modeling philosophy recognizes that an agile team must have the courage to make decisions that may cause it to reject a design and refactor. The team must also have the humility to recognize that technologists do not have all the answers and that business experts and other stakeholders should be respected and embraced.
  • 22. SIMILAR MODELS Other agile models. AGILE UNIFIED PROCESS (AUP) INTRODUCTION AUP is a simplified version of the Rational Unified Process (RUP). It describes a simple, easy to understand approach to developing business application software using agile techniques and concepts yet still remaining true to the RUP. I've tried to keep the Agile UP as simple as possible, both in its approach and in its description. The descriptions are simple and to the point, with links to details (on the web) if you want them. DIAGRAM ADVANTAGES Your staff know what they're doing. People are not going to read detailed process documentation, but they will want some high-level guidance and/or training from time to time. The AUP product provides links to many of the details, if you are interested, but doesn't force them upon you. Simplicity. Everything is described concisely using a handful of pages, not thousands of them. Agility. The Agile UP conforms to the values and principles of the agile software development and the Agile Alliance. Focus on high-value activities. The focus is on the activities which actually count, not every possible thing that could happen to you on a project. Tool independence. You can use any toolset that you want with the Agile UP. The recommendation is that you use the tools which are best suited for the job, which are often simple tools. You'll want to tailor the AUP to meet your own needs. DISADVANTAGES Not a good choice if frequent cycle and demo release is needed. BEST USES Best used if UML model is needed to be integrated with.
  • 23. CODE AND FIX PROCESS MODEL INTRODUCTION This model suggest rapid testing process through small approaches. This model starts with an informal general Product idea and just develops code until a product is ready. DIAGRAM ADVANTAGES No administrative overhead. Signs of progress (code) early. Low expertise, anyone can use it! Useful for small proof of concept. Projects, as part of risk reduction. DISADVANTAGES No visibility, no planning, no deadlines, mistake hard to detect and impossible for large project. BEST USES If project is small and needed to be done in trial and error basis, then it is best. REUSE-ORIENTED DEVELOPMENT INTRODUCTION The reuse-oriented model, also called reuse-oriented development (ROD), is an important area in Software Engineering related to the reuse of the information produced during previous software development projects, in order to decrease the effort needed for a new project .The main idea behind the reuse technology is to build software systems with higher quality and reliability factors in an economic and feasible process. DIAGRAM
  • 24. ADVANTAGES The reuse-oriented model can reduce the overall cost of software development compared with more tedious manual methods. It can also save time because each phase of the process builds on the previous phase which has already been refined. When carefully carried out, ROD can minimize the likelihood of errors or bugs making their way into the final product. Requirements are known because the analyzer is using a previous software. DISADVANTAGES The reuse-oriented model is not always practical in its pure form because a full repertoire of reusable components may not be available. In such instances, some new program components must be designed. If not thoughtfully done, ROD can lead to compromises in perceived requirements, resulting in a product that does not fully meet the needs of its intended users. BEST USES It is very effective if cost is the main hindrance of the project. SIMILAR MODELS Evolutionary model. PROTOTYPE MODEL INTRODUCTION The basic idea here is that instead of freezing the requirements before a design or coding can proceed, a throwaway prototype is built to understand the requirements. This prototype is developed based on the currently known requirements. By using this prototype, the client can get an “actual feel” of the system, since the interactions with prototype can enable the client to better understand the requirements of the desired system. DIAGRAM
  • 25. ADVANTAGES Users are actively involved in the development Since in this methodology a working model of the system is provided, the users get a better understanding of the system being developed. Errors can be detected much earlier. Quicker user feedback is available leading to better solutions. Missing functionality can be identified easily Confusing or difficult functions can be identified Requirements validation, Quick implementation of, incomplete, but Functional, application. DISADVANTAGES Leads to implementing and then repairing way of building systems. Practically, this methodology may increase the complexity of the system as scope of the system may expand beyond original plans. Incomplete application may cause application not to be used as the Full system was designed Incomplete or inadequate problem analysis. BEST USES Prototype model should be used when the desired system needs to have a lot of interaction with the end users. Typically, online systems, web interfaces have a very high amount of interaction with end users, are best suited for Prototype model. It might take a while for a system to be built that allows ease of use and needs minimal training for the end user. BIG BANG MODEL INTRODUCTION Big bang model comprises of focusing all the possible resources in software development and coding, with very little or no planning. The requirements are understood and implemented as they come. Any changes required may or may not need to revamp the complete software. This model is ideal for small projects with one or two developers working together and is also useful for academic or practice projects. It is an ideal model for the product where requirements are not well understood and the final release date is not given.
  • 26. DIAGRAM ADVANTAGES This is a very simple model Little or no planning required Easy to manage Very few resources required Gives flexibility to developers Is a good learning aid for new comers or students DISADVANTAGES Very High risk and uncertainty. Not a good model for complex and object-oriented projects. Poor model for long and ongoing projects. Can turn out to be very expensive if requirements are misunderstood BEST USES The advantage of Big Bang is that its very simple and requires very little or no planning. Easy to manage and no formal procedure are required. DOMAIN-DRIVEN DESIGN INTRODUCTION Domain-driven design (DDD) is an approach to develop software for complex needs by connecting the implementation to an evolving model. The premise of domain-driven design is the following: Placing the project's primary focus on the core domain and domain logic. Basing complex designs on a model of the domain. Initiating a creative collaboration between technical and domain experts to iteratively refine a conceptual model that addresses particular domain problems. DIAGRAM
  • 27. ADVANTAGES The domain is not trivial The project team has experience and interest in Object Oriented Programming/Design The project has access to domain experts There is an iterative process in place DISADVANTAGES Very narrow field of application. BEST USES When networking is mandatory. V-MODEL INTRODUCTION The V - model is SDLC model where execution of processes happens in a sequential manner in V-shape. It is also known as Verification and Validation model. V - Model is an extension of the waterfall model and is based on association of a testing phase for each corresponding development stage. This means that for every single phase in the development cycle there is a directly associated testing phase. This is a highly disciplined model and next phase starts only after completion of the previous phase. DIAGRAM
  • 28. ADVANTAGES This is a highly disciplined model and Phases are completed one at a time. Works well for smaller projects where requirements are very well understood. Simple and easy to understand and use. Easy to manage due to the rigidity of the model. Each phase has specific deliverables and a review process. DISADVANTAGES High risk and uncertainty. Not a good model for complex and object-oriented projects. Poor model for long and ongoing projects. Not suitable for the projects where requirements are at a moderate to high risk of changing. Once an application is in the testing stage, it is difficult to go back and change a functionality No working software is produced until late during the life cycle. BEST USES It is best used if continuous changes does not occur.