Exclusively for you!! Trial version of Google Apps, Apply Coupon-CNHPGX6T6QRWGV!!
Importance of Software Maintenance
Jan29

Importance of Software Maintenance

Welcome to CodeSpread! What is Software Maintenance? Software maintenance is an important phase of SDLC. It is defined as a set of activities to keep the software functional and behavioral as intended for as long as possible with few problems. These activities might involve any processes to modify software product after final release cycle. As a result, software maintenance will Improve performance Correct faults Adapt the product to a modified environment How software maintenance is different from software development? Software Development is kind of a new development where a new environment and system is created from the scratch and there are no sketchy boundaries, if not limited by requirements. But think of introducing a new feature in the developed product which is running in a specific environment. Then, the existing system setting and environment plays a major role as they are required to be considered and analyzed at the planning stage of new feature development. Consideration of limitations posed by existing system and environment is the key difference between software maintenance and software development. What is the purpose of software maintenance? The purpose is to preserve the value of software over the time. The value can be enhanced by expanding the customer base, enhancements of capabilities, deletion of obsolete capabilities,  more efficient and employing newer technology. What are the categories of Software Maintenance? Software maintenance is categorized mainly into 4 categories: Adaptive: As the name suggests, it is related to activities which ensures software remain functional during movement of software to a new system environment. For example: Up gradation of processor will require software to be adapted to the upgraded environment. Perfective: Here, more the requirements, more expansion of software is required. Requirements grow over a course of time so do software. Perfective is an approach to accommodate the enhancement of the initial product. Corrective: As the name suggests, Corrective approach tends to correct any errors or bugs. These errors or bugs might have introduced during design stage, coding stage. These issues might have been missed during development or later crop up under some new test scenarios which were not covered during testing. Preventive: Preventive approach is more a beforehand precaution approach where activities are lined up to avoid any corrective action. For example: Any maintenance activity might lead to code complexity so a series of code restructuring and code optimization activities are performed to avoid any successive issues. Thanks! Related articles across the web Software Maintenance is a...

Read More
Sunday Splash: SDLC
Jul21

Sunday Splash: SDLC

Read More
Scope of Patterns in SDLC
Dec23

Scope of Patterns in SDLC

What is SDLC? To understand SDLC, refer article. What is a Pattern? Web Definition says “A pattern is the formalization of a problem/solution pair, used to make an object-oriented design decision. The purpose of a pattern is to codify existing design knowledge so that developers are not constantly re-inventing the wheel. Also, by naming these patterns, it eases communication among developers.” According to Pattern-Oriented Software Architecture “A particular recurring design problem that arises in specific design contexts, and presents a well-proven generic scheme for its solution. The solution scheme is specified by describing its constituent components, their responsibilities and relationships, and the ways in which they collaborate.” We can easily think of it as a re-usable solution to a recurring problem which requires dismantling a large complex structure and rebuild it using simple parts. It provides a tried and tested solution for a recurring  problems. What is a Design Pattern? Wikipedia says “a design pattern is a general reusable solution to a commonly occurring problem within a given context in software design. A design pattern is not a finished design that can be transformed directly into source or machine code. It is a description or template for how to solve a problem that can be used in many different situations. Patterns are formalized best practices that the programmer must implement themselves in the application.” What is the difference between Pattern and Design Pattern? Biggest difference is that the pattern can be applied at different stages of a problem where as design pattern applies to a specific stage like design stage. When we think of a large complex software, we have to think deep into it and take decisions which can affect till the granular level. To make this approach a success,patterns are identified and applied to each level. One of the level is design level, where Design patterns are applied. These are the tools used at implementation level which are usually associated with code level issues. It provides various schemes for refining and building smaller subsystems. Patterns are more seen as approach at higher level than design patterns. What is the scope of Patterns in SDLC? Let’s go through each stage of SDLC from a technical perspective and find a pattern involved. Requirements: One to One Interaction: Communication between client and Analysts. Visual Models: Models are used to gather and identify requirements. Story Telling or Brainstorming. Architecture: Layer Architecture: Applications is trusted with different layers responsible for performing a designated role. It improves isolation of concerns. Mainly Layers are divided into the Data Access layer the Business Logic layer the Graphical User Interface layer Model-View-Controller:The controller manipulates model based...

Read More
SDLC: Importance of Requirement Analysis.
Dec22

SDLC: Importance of Requirement Analysis.

What is SDLC? SDLC is the acronym for Software Development Life Cycle or System Development Life Cycle.It is a conceptual model that describes the stages involved in development of a software or a system. SDLC defines the important stages of development life cycle which are used by analyst,system designers and developers to plan and execute sequence of activities required to achieve a quality software or system at scheduled time and estimated cost. This process involves participation of client, analysts, designers, developers and end-users as per the current stage of SDLC. SDLC can be wrapped up into 7 stages: Initiation- Related to proposal. Planning Phase-Related to project plan and process map. Analysis-Related to Requirement gathering , Requirement engineering and requirement analysis. Design-Related to design of the system. Development-Related to Coding and Implementation. Testing-Related to testing of the project/software. Deployment/Implementation-Related to implementation of the project. There are few Models which follows SDLC and adopted by many companies as a standard. Waterfall Model: Waterfall Model is similar to its meaning as it is a flow based model, in which there are phases which are followed one by one and once completed,none of the phase is repeated . If requirement stage is over,and project has moved to design stage then project will not move back to requirement phase. There is a big drawback involved as client will be able to review the product only when it is ready. Spiral Model: The spiral model follows waterfall model but in a different way.It considers only a node of a project to be developed as a prototype. It allows for incremental releases of the product and elements of the product can be added,when they become available Prototype Model: Prototype model is much more client friendly and helps developers, as they receive feedback from the client very early during the development. This feedback can be included in the project and improves quality. Agile Methodology: SDLC model is quite popular these days.It consists of cycles which are like smaller iterations. These iterations are short phases of regular SDLC which includes shorter versions of requirements, design, implementation and testing. After each iteration, a working version is created and shared with the client. Each iteration is an improvement over the earlier versions. In our daily work, we see that there might be inconsistencies getting introduced in the projects. There are many solutions available in current world which are like, Precautions taken or new methodology adopted, to improve the process but that will always be a temporary fix and not a complete solution. With my previous experience, i can safely confirm that analysis is a phase, if done properly, can remove...

Read More