+ All Categories
Home > Education > Software engineering 25 models details

Software engineering 25 models details

Date post: 30-Nov-2014
Category:
Upload: samiul-hossaini
View: 700 times
Download: 3 times
Share this document with a friend
Description:
25 models of Software Engineering -Description -Figure -Advantage -Disadvantage -Best uses
32
[Date] Software Engineering Assignment Samiul Al Hossaini 11-18569-1 Section : B
Transcript
Page 1: Software engineering 25 models details

[Date]

Software Engineering

Assignment

Samiul Al Hossaini

11-18569-1

Section : B

Page 2: Software engineering 25 models details

NAME OF MODELS:

• WATERFALL MODEL

• INCREMENTAL MODEL

• SPIRAL MODEL

• CONCURRENT PROCESS MODEL

• COMPONENT BASED MODEL

• FORMAL METHOD MODEL

• ASPECT ORIENTED DEVELOPMENT

• UNIFIED PROCESS

• PERSONAL SOFTWARE PROCESS (PSP)

• TEAM SOFTWARE PROCESS (TSP)

• EXTREME PROGRAMMING (XP)

• ADAPTIVE SOFTWARE DEVELOPMENT (ASD)

• SCRUM

• DYNAMIC SYSTEMS DEVELOPMENT METHOD (DSDM)

• CRYSTAL

• FEATURE-DRIVEN DEVELOPMENT (FDD)

• LEAN SOFTWARE DEVELOPMENT (LSD)

• AGILE MODELING (AM)

• AGILE UNIFIED PROCESS (AUP)

• CODE AND FIX PROCESS MODEL

• REUSE-ORIENTED DEVELOPMENT

• PROTOTYPE MODEL

• BIG BANG MODEL

• DOMAIN-DRIVEN DESIGN

• V-MODEL

Page 3: Software engineering 25 models details

WATERFALL MODELINTRODUCTION

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. Product definition is stable. Technology is understood. There are no ambiguous requirements

Page 4: Software engineering 25 models details

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 MODELINTRODUCTION

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.

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.

Page 5: Software engineering 25 models details

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 MODELINTRODUCTION

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

Page 6: Software engineering 25 models details

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.

CONCURRENT PROCESS MODEL

Page 7: Software engineering 25 models details

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.

COMPONENT BASED MODEL

Page 8: Software engineering 25 models details

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.

FORMAL METHOD MODEL

Page 9: Software engineering 25 models details

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.

ASPECT ORIENTED DEVELOPMENTINTRODUCTION

Page 10: Software engineering 25 models details

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 PROCESSINTRODUCTION

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.

DIAGRAM

Page 11: Software engineering 25 models details

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

Page 12: Software engineering 25 models details

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

Page 13: Software engineering 25 models details

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

Page 14: Software engineering 25 models details

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.

Page 15: Software engineering 25 models details

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.

Page 16: Software engineering 25 models details

SCRUMINTRODUCTION

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.

Page 17: Software engineering 25 models details

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 • Never, ever compromise quality • Build the project incrementally using solid foundations 

Page 18: Software engineering 25 models details

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.

CRYSTALINTRODUCTION

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.

BEST USES

Best if these are needed:

Frequent delivery

Page 19: Software engineering 25 models details

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.

BEST USES

Page 20: Software engineering 25 models details

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.

Page 21: Software engineering 25 models details

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 software-based 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.

Page 22: Software engineering 25 models details

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.

Page 23: Software engineering 25 models details

CODE AND FIX PROCESS MODELINTRODUCTION

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 DEVELOPMENTINTRODUCTION

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

Page 24: Software engineering 25 models details

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 MODELINTRODUCTION

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

Page 25: Software engineering 25 models details

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 MODELINTRODUCTION

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.

DIAGRAM

Page 26: Software engineering 25 models details

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 DESIGNINTRODUCTION

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

Page 27: Software engineering 25 models details

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-MODELINTRODUCTION

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

Page 28: Software engineering 25 models details

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.


Recommended