Sunteți pe pagina 1din 8

DIFFERENT PHASES OF THE SOFTWARE LIFECYCLE MODEL.

A well documented maintainable software requires processing the various steps involved in a manner
that is predictable. A software development life cycle is the period of time that starts when a software
product is conceived and ends when the product is no longer available for use.
And a software development life cycle (SDLC) model is a particular abstraction that represents a software
life cycle i,e it describes the phases and the order in which those phases are to be executed.

Example: in designing a simple website for a library system, we need to first gather details of all the
users of it (ug and pg students, faculty, admin, data entry manager etc), we need to design the model,
code and implement and test the features before launching it.
A typical software development life cycle model has the following phases:

1. Requirement gathering and analysis

This is the most important and fundamental stage in a software life cycle. Meetings, brainstorming
sessions, interviews with managers, stakeholders and users are held in order to determine the what and
the how of the system. This phase involves requirement engineering that converts the given problem
statement of the system into the final software requirement specification document (SRS).
The important steps of requirement engineering are:
a. Requirement elicitation: gathering of the requirements.
b. Requirement analysis: identify the inconsistencies, defects, oissions etc.
c. Requirement documentation: preparation of SRS
d. Requirement review/verification: review to maximise the quality of SRS.

Once the requirement analysis is done the next step is to clearly define and document the product
requirements and get them approved from the customer or the market analysts. This is done through an
SRS(software requirement specification) document which consists of all the product requirements to be
designed and developed during the project life cycle.

2. Design

This phase involves clearly defining and documenting the product requirements and specifying the
hardware and system requirements and also helps in defining overall system architecture. SRS
document prepared is the input for the design phase which further serve as an input for the next phase
of the model.

Design elements describe the desired system features in detail, and they generally include functional
hierarchy diagrams, screen laust diagrams, tables of business rules, business process diagrams,
pseudo-code, and a complete entity-relationship diagram with a full data dictionary. These design
elements are intended to describe the system in sufficient detail, such that skilled developers and
engineers may develop and deliver the system with minimal additional input design.

3. Implementation and coding

Here the SRS document is translated to the source code. The hardware or the software implementation
of the design is done. In the coding phase, tasks are divided into units or modules and assigned to the
various developers. It is the longest phase of the software development life cycle process.

Developer has to follow certain predefined coding guidelines and need to use programming tools like
compilers, interpreters, debugger to generate and implement the code.

4. Testing

Once the code is developed it is tested against the requirements to make sure that the product is
actually solving the needs addressed and gathered during the requirements phase. Unit, system, and
user acceptance testing are often performed.

During this phase all types of functional testing like unit testing, integration testing, system testing,
acceptance testing are done as well as non-functional testing are also done. It starts once the coding is
complete and the modules are released for testing. In this phase, the developed software is tested
thoroughly and any defects found are assigned to developers to get them fixed.
5. Deployment

As soon as the product is given to the customers they will first do the beta testing. If any changes are
required or if any bugs are caught, then they will report it to the engineering team. Once those changes
are made or the bugs are fixed then the final deployment will happen. Based on the feedback given by
the project manager, the final software is released and checked for deployment issues if any.

6. Maintenance

Maintaining the system is an important aspect of SDLC. As key personnel change positions in the
organization, new changes will be implemented. From the two approaches called the structured analysis
and design technique, The object oriented approach views information system as a collection of objects
that are integrated with each other to make a full and complete information system. Once the system is
deployed, and customers start using the developed system, following 3 activities occur.

a. Bug fixing - bugs are reported because of some scenarios which are not tested at all
b. Upgrade - upgrading the application to the newer versions of the software
c. Enhancement - adding some new features into the existing software

The main focus of this sdlc phase is to ensure that needs continue to be met and that the system
continues to perform as per the specification mentioned in the first phase.

II. CASE TOOLS:

Case tools or computer aided software engineering are the predefined methods and computer assisted
tools used to aid the development process and ensures a check-pointed and disciplined approach and
helps designers, developers, testers, managers and others to see the milestones during development.

The case approach covers the entire cycle of product development, including code generation, product
tools, repositories, prototyping and other tools. Case tools may support the following development steps
for developing database application to software development company.

a. Creation of data flow and entity models


b. Establishing a relationship between requirements and various models
c. Development of top-level design
d. Development of functional and process description
e. Development of test cases.
1. LudicChart (diagram tool)

Online collaboration tool that allows creation of an unlimited number of diagrams with a limit of 60
objects per diagram. It’s a web app, and it also works in tablets.

Features:

a. Creates flowcharts, organizational charts, website wireframes, uml (unified modeling language)
designs, mind maps, software prototypes, and diagram types;
b. Web app that works in google chrome, firefox, safari, microsoft edge, and Internet Explorer 8;
c. Cloud-based
d. Offers collaboration between teams in real time;
e. Allows publication and sharing;
f. Exports to vector pdfs, jpeg, and png images;
g. Features enterprise-level security and admins controls.
2. Creative pro office (Project management tool)

Creativepro office is a complete set of online office management tools that are free and allows us to
manage team, clients, projects, invoices, & events from one web-based application. It is suited for both
independent professionals and small teams of graphic designers, programmers and web developers.

Features:

a. Office dashboard: We can stay informed at a glance with dashboard widgets that show
calendar, open invoices, tasks, current projects and much more.
b. Invoices & expenses : quickly create professional looking invoices for the clients and send them
via email. Quickly add timesheet entries and expense items to our invoices.
c. Project manager: critical project data like tasks, hours spent, amounts invoiced, project contacts,
notes and messages are all presented in one concise view.
d. Team permissions: team members should only see what they need to see! Administrators have
very fine control over team member permissions and access.
e. Task management: tasks, milestones, simple to-do lists...Creativepro office supports them all.
Assign tasks to multiple team members, attach files, create comment threads, and much more.
3. Adobe robohelp (documentation tool)

Adobe robohelp is a help authoring tool (HAT) that allows us to create help systems, e-learning content
and knowledge bases. It can help creating files & documentation for various technical communications.

Features:
a. Next-generation html5 layouts: It help us to create visually engaging borderless html5 layouts.
These layouts offer a superior search and navigation experience and are preloaded with many
features like topic sliders, show/hide widgets, etc.
b. Auto-complete: We can get predictive search results in the search field of the responsive html5
output after typing the first few characters. The results appear instantaneously and are
contextual without the user having to enter the full search string.
c. Thumbnail support: We can now publish thumbnails of images, which can reduce page loading
times, saving bandwidth, while also being mobile friendly. It is possible to maintain a standard
thumbnail size in order to maintain consistency throughout the content.
d. Favorites in responsive html5: It is now possible to mark topics as favorites and add custom links
with the new indigo themed responsive html5 layouts.
e. Variable views: We can now easily toggle between the variable name and its value by a
keyboard shortcut or from the context menu. We can toggle a single variable or all variables to
view content exactly as usr audience would view it.
4. Mockup builder (Prototyping tools)

It is an easy, wireframe and mockup tool. Easily prototype software, web & mobile (ios, android, Easily
prototype software, web & mobile (ios, android,Surface ets.). We can make, share, validate, collaborate
and simply create with our convenient prototyping solution.

Features:

a. Simple sketch: each of the elements that can be dragged can be changed in size via simple
tension or by setting the desired size in the properties. All or some elements on the canvas can
be grouped, copied, cloned, disassembled, cut, etc.
b. Advanced options: Advanced options assume that users can add new working screens to the
main screen. Links to specific screens in the working canvas provide advanced capabilities
between different screens/elements/buttons. Users can export their products to the png or pdf
formats.
c. Sketch sharing: if us are developing different projects or projects with several pages that us want
to share/make comments/correct or present to clients, us can use the advanced features offered
by mockup builder. Mockup builder sketch sharing service allows users to give other people
access to our mockups.

5. Git (configuration management tool)

Git is a distributed version control tool that is used to store different versions of a file in a remote or local
repository. It is used to track changes in the source code. It allows multiple developers to work together.
Git is a distributed version-control system for tracking changes in source code during software
development. It is designed for coordinating work among programmers, but it can be used to track
changes in any set of files. Its goals include speed, data integrity, and support for distributed, non-linear
workflows

Features:

a. Feature Branch Workflow: One of the biggest advantages of Git is its branching capabilities.
Unlike centralized version control systems, Git branches are cheap and easy to merge.
b. Distributed Development: In SVN, each developer gets a working copy that points back to a
single central repository. Git, however, is a distributed version control system. Instead of a
working copy, each developer gets their own local repository, complete with a full history of
commits.
c. Pull Requests: Many source code management tools such as Bitbucket enhance core Git
functionality with pull requests. A pull request is a way to ask another developer to merge one of
our branches into their repository. This not only makes it easier for project leads to keep track of
changes, but also lets developers initiate discussions around their work before integrating it with
the rest of the codebase.
d. Community: In many circles, Git has come to be the expected version control system for new
projects. If our team is using Git, odds are we won’t have to train new hires on our workflow,
because they’ll already be familiar with distributed development.
e. Faster Release Cycle: The ultimate result of feature branches, distributed development, pull
requests, and a stable community is a faster release cycle. These capabilities facilitate an agile
workflow where developers are encouraged to share smaller changes more frequently. In turn,
changes can get pushed down the deployment pipeline faster than the monolithic releases
common with centralized version control systems.

S-ar putea să vă placă și