<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Learn Software Development &#187; SDLC</title>
	<atom:link href="http://learnsoftwareprocesses.com/category/sdlc/feed/" rel="self" type="application/rss+xml" />
	<link>http://learnsoftwareprocesses.com</link>
	<description>All about the processes involved in software development</description>
	<lastBuildDate>Sun, 20 May 2012 19:17:40 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Summary of testing needs during the SDLC</title>
		<link>http://learnsoftwareprocesses.com/2008/04/06/summary-of-testing-needs-during-the-sdlc/</link>
		<comments>http://learnsoftwareprocesses.com/2008/04/06/summary-of-testing-needs-during-the-sdlc/#comments</comments>
		<pubDate>Sun, 06 Apr 2008 18:02:53 +0000</pubDate>
		<dc:creator>ashish</dc:creator>
				<category><![CDATA[SDLC]]></category>
		<category><![CDATA[Testing]]></category>

		<guid isPermaLink="false">http://learnsoftwareprocesses.com/2008/04/06/summary-of-testing-needs-during-the-sdlc/</guid>
		<description><![CDATA[<p>There is an often asked question about when testing should occur in the overall product development cycle?</p> <p>Testing is sometimes incorrectly thought as an after-the-fact activity. Instead, testing should be performed at every development stage of the product. Test data sets must be derived and their correctness and consistency should be monitored throughout the development [...]]]></description>
			<content:encoded><![CDATA[<p>There is an often asked question about when testing should occur in the overall product development cycle?</p>
<p>Testing is sometimes incorrectly thought as an after-the-fact activity. Instead, testing should be performed at every development stage of the product. Test data sets must be derived and their correctness and consistency should be monitored throughout the development process. Testing should accompany each phase of “Software Development Life Cycle”. If testing is isolated as a single phase late in the cycle, errors in the problem statement or design may incur exorbitant costs. If this happens, not only must the original error be corrected, but the entire structure built upon it has to be changed. Therefore, testing should be involved throughout SDLC in order to bring out a quality product.</p>
<p>Testing Activities In Each Phase:</p>
<p>1.	REQUIREMENTS ANALYSIS<br />
•	Determine correctness<br />
•	Generate functional test data.</p>
<p>2.	Design<br />
•	Determine correctness and consistency<br />
•	Generate structural and functional test data.</p>
<p>3.	PROGRAMMING<br />
•	Determine correctness and consistency.<br />
•	Generate structural and functional test data.<br />
•	Apply test data.<br />
•	Refine test data.</p>
<p>4.	OPERATION &#038; MAINTENANCE<br />
•	Retest</p>
<p>Of course, if you want to add examples of your own to substantiate this, please do so through the comments section.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://learnsoftwareprocesses.com/2008/04/06/summary-of-testing-needs-during-the-sdlc/' addthis:title='Summary of testing needs during the SDLC '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://learnsoftwareprocesses.com/2008/04/06/summary-of-testing-needs-during-the-sdlc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Software Requirement Specification (SRS) template</title>
		<link>http://learnsoftwareprocesses.com/2007/10/17/software-requirement-specification-srs-template/</link>
		<comments>http://learnsoftwareprocesses.com/2007/10/17/software-requirement-specification-srs-template/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 18:58:00 +0000</pubDate>
		<dc:creator>ashish</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Document]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://learnsoftwareprocesses.com/2007/10/17/software-requirement-specification-srs-template/</guid>
		<description><![CDATA[<p>Given the importance of capturing the Requirement specifications in a well documented way, the document itself should be very well drafted. The sections in it must closely map to the needs, and yet the overall document must not be very process heavy. It should make sense to the stakeholders, and yet capture all the relevant [...]]]></description>
			<content:encoded><![CDATA[<p>Given the importance of capturing the Requirement specifications in a well documented way, the document itself should be very well drafted. The sections in it must closely map to the needs, and yet the overall document must not be very process heavy. It should make sense to the stakeholders, and yet capture all the relevant information.<br />
An SRS is basically an organization&#8217;s understanding (in writing) of a customer or potential client&#8217;s system requirements and dependencies at a particular point in<br />
time (usually) prior to any actual design or development work. It&#8217;s a two-way insurance policy that assures that both the client and the organization understand the other&#8217;s requirements from that perspective at a given point in time.<br />
It&#8217;s important to note that an SRS contains functional and nonfunctional requirements only; it doesn&#8217;t offer design suggestions, possible solutions to technology or business issues, or any other information other than what the development team understands the customer&#8217;s system requirements to be.<br />
A well-designed, well-written SRS accomplishes four major goals:</p>
<p>    * It provides feedback to the customer. An SRS is the<br />
      customer&#8217;s assurance that the development organization<br />
      understands the issues or problems to be solved and the<br />
      software behavior necessary to address those problems.<br />
      Therefore, the SRS should be written in natural language<br />
      (versus a formal language, explained later in this<br />
      article), in an unambiguous manner that may also include<br />
      charts, tables, data flow diagrams, decision tables, and so<br />
      on.<br />
    * It decomposes the problem into component parts. The<br />
      simple act of writing down software requirements in a<br />
      well-designed format organizes information, places borders<br />
      around the problem, solidifies ideas, and helps break down<br />
      the problem into its component parts in an orderly<br />
      fashion.<br />
    * It serves as an input to the design specification. As<br />
      mentioned previously, the SRS serves as the parent document<br />
      to subsequent documents, such as the software design<br />
      specification and statement of work. Therefore, the SRS<br />
      must contain sufficient detail in the functional system<br />
      requirements so that a design solution can be devised.<br />
    * It serves as a product validation check. The SRS also<br />
      serves as the parent document for testing and validation<br />
      strategies that will be applied to the requirements for<br />
      verification.</p>
<p>Here are some templates available on the internet:</p>
<p><a href="http://www.processimpact.com/process_assets/srs_template.doc" target="_blank">Link1</a>, <a href="http://mcis.jsu.edu/studio/SRSTemplate.doc" target="_blank">Link2</a>, <a href="http://www.yedanet.co.il/image/users/35408/ftp/my_files/srs.doc" target="_blank">Link3</a>, <a href="http://www.sju.edu/~scooper/spring01se/SoftwareRequirementsSpecification.htm" target="_blank">Link4</a>, <a href="http://www.cs.stevens.edu/~badri/CS640/requirements.html" target="_blank">A set of SRS templates</a>, <a href="http://www.techwr-l.com/techwhirl/magazine/writing/softwarerequirementspecs.html" target="_blank">Link5</a>, <a href="http://www.jiludwig.com/Template_Guidance.html#SRS" target="_blank">Link6</a></p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://learnsoftwareprocesses.com/2007/10/17/software-requirement-specification-srs-template/' addthis:title='Software Requirement Specification (SRS) template '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://learnsoftwareprocesses.com/2007/10/17/software-requirement-specification-srs-template/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Problems faced in the stage of Requirements Analysis</title>
		<link>http://learnsoftwareprocesses.com/2007/10/17/problems-faced-in-the-stage-of-requirements-analysis/</link>
		<comments>http://learnsoftwareprocesses.com/2007/10/17/problems-faced-in-the-stage-of-requirements-analysis/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 18:43:55 +0000</pubDate>
		<dc:creator>ashish</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Document]]></category>
		<category><![CDATA[Issues]]></category>
		<category><![CDATA[Requirements]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[Software]]></category>

		<guid isPermaLink="false">http://learnsoftwareprocesses.com/2007/10/17/problems-faced-in-the-stage-of-requirements-analysis/</guid>
		<description><![CDATA[<p>For a process that is so critical to the success of a software project, you would be surprised at the number of problems that can happen during the requirements gathering and analysis process. This must be the reason why Requirements Analysis is called the &#8216;make-or-break&#8217; step of any project.</p> <p>* Users don&#8217;t understand what they [...]]]></description>
			<content:encoded><![CDATA[<p>For a process that is so critical to the success of a software project, you would be surprised at the number of problems that can happen during the requirements gathering and analysis process. This must be the reason why Requirements Analysis is called the &#8216;make-or-break&#8217; step of any project.</p>
<p>* Users don&#8217;t understand what they want or users don&#8217;t have a clear idea of their requirements: Possibly the most common problem in the requirements analysis phase is that customers have only a vague idea of what they need, and it&#8217;s up to you to ask the right questions and perform the analysis necessary to turn this amorphous vision into a formally-documented software requirements specification that can, in turn, be used as the basis for both a project plan and an engineering architecture.<br />
* Users won&#8217;t commit to a set of written requirements: There will always be the feeling that such a list is not complete, and can cause immense heartburn for the requirements analysts<br />
* Users insist on new requirements after the cost and schedule have been fixed: This may occur because as development progresses and prototypes are developed, customers are able to more clearly see problems with the original plan and make necessary course corrections; it may also occur because changes in the external environment require reshaping of the original business problem and hence necessitates a different solution than the one originally proposed. Good project managers are aware of these possibilities and typically already have backup plans in place to deal with these changes.<br />
* Communication with users is slow: The users and the requirements analysts are from different working environments with a different pace and style of working<br />
* Users often do not participate in reviews or are incapable of doing so: Especially when dealing with customers from the non-software industry<br />
* Users are technically unsophisticated<br />
* Users don&#8217;t understand the development process.<br />
* Technical personnel and end users may have different vocabularies. Consequently, they may wrongly believe they are in perfect agreement until the finished product is supplied.<br />
* Engineers and developers may try to make the requirements fit an existing system or model, rather than develop a system specific to the needs of the client.<br />
* Analysis may be often carried out by engineers or programmers, rather than personnel with the people skills and the domain knowledge to understand a client&#8217;s needs properly.</p>
<p>What can be done ? There are some steps that cam be taken to get over some of these difficulties:<br />
# Ensure that you spend sufficient time at the start of the project on understanding the objectives, deliverables and scope of the project.<br />
# Make visible any assumptions that the customer is using, and critically evaluate both the likely end-user benefits and risks of the project.<br />
# Get your customer to read, think about and sign off on the completed software requirements specification, to align expectations and ensure that both parties have a clear understanding of the deliverable.<br />
# Have a clearly defined process for receiving, analyzing and incorporating change requests, and make your customer aware of his/her entry point into this process.<br />
# Set milestones for each development phase beyond which certain changes are not permissible &#8212; for example, disallowing major changes once a module reaches 75 percent completion<br />
# Convert the software requirements specification into a project plan, detailing tasks and resources needed at each stage and modeling best-case, middle-case and worst-case scenarios.<br />
# Ensure that the project plan takes account of available resource constraints and keeps sufficient time for testing and quality inspection<br />
# Take notes at every meeting and disseminate these throughout the project team</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://learnsoftwareprocesses.com/2007/10/17/problems-faced-in-the-stage-of-requirements-analysis/' addthis:title='Problems faced in the stage of Requirements Analysis '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://learnsoftwareprocesses.com/2007/10/17/problems-faced-in-the-stage-of-requirements-analysis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Details about Requiements Analysis</title>
		<link>http://learnsoftwareprocesses.com/2007/10/17/details-about-requiements-analysis/</link>
		<comments>http://learnsoftwareprocesses.com/2007/10/17/details-about-requiements-analysis/#comments</comments>
		<pubDate>Wed, 17 Oct 2007 17:48:14 +0000</pubDate>
		<dc:creator>ashish</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Document]]></category>
		<category><![CDATA[Model]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Terms]]></category>

		<guid isPermaLink="false">http://learnsoftwareprocesses.com/2007/10/17/details-about-requiements-analysis/</guid>
		<description><![CDATA[<p>What is Requirements Analysis ?</p> <p>Requirements are a description of how a system should behave or a description of system properties or attributes. It can alternatively be a statement of ‘what’ an application is expected to do. Requirements drive almost every activity, task, and deliverable in a software development project. Requirements must be actionable, measurable, [...]]]></description>
			<content:encoded><![CDATA[<p>What is Requirements Analysis ?</p>
<p>Requirements are a description of how a system should behave or a description of system properties or attributes. It can alternatively be a statement of ‘what’ an application is expected to do. Requirements drive almost every activity, task, and deliverable in a software development project. Requirements must be actionable, measurable, testable, related to identified business needs or opportunities, and defined to a level of detail sufficient for system design.<br />
So, Requirements Analysis is the process of understanding the customer needs and expectations from a proposed system or application and is a well-defined stage in the Software Development Life Cycle model. Systematic requirements analysis is also known as requirements engineering. It is sometimes referred to loosely by names such as requirements gathering, requirements capture, or requirements specification. The term &#8220;requirements analysis&#8221; can also be applied specifically to the analysis proper (as opposed to elicitation or documentation of the requirements, for instance).</p>
<p>Conceptually, requirements analysis includes three types of activity:<br />
* Eliciting requirements: the task of communicating with customers and users to determine what their requirements are.<br />
* Analyzing requirements: determining whether the stated requirements are unclear, incomplete, ambiguous, or contradictory, and then resolving these issues.<br />
* Recording requirements: Requirements may be documented in various forms, such as natural-language documents, use cases, user stories, or process specifications.</p>
<p>The Software Requirements Analysis Process covers the complex task of eliciting and documenting the requirements of all these users, modeling and analyzing these requirements and documenting them as a basis for system design.</p>
<p>Why is a thorough Requirements Analysis stage necessary?</p>
<p>Taking the time at the beginning of a project to define and document needs, features, and requirements enables you to establish traceability to ensure that your software requirements specification aligns with your business objectives and continues to do so throughout the project.<br />
Studies reveal that inadequate attention to Software Requirements Analysis at the beginning of a project is the most common cause for critically vulnerable projects that often do not deliver even on the basic tasks for which they were designed. It is typically very costly to fix requirement errors that remain undiscovered until all the code has been written. </p>
<p>Why do we need requirements?</p>
<p>Requirements generated from the requirements analysis stage are used in a number of processes down the line, such as:<br />
- Project scoping<br />
- Cost estimating &#038; Budgeting<br />
- Project scheduling<br />
- Software design<br />
- Software testing<br />
- Documentation and training manuals</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://learnsoftwareprocesses.com/2007/10/17/details-about-requiements-analysis/' addthis:title='Details about Requiements Analysis '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://learnsoftwareprocesses.com/2007/10/17/details-about-requiements-analysis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>What is software design ?</title>
		<link>http://learnsoftwareprocesses.com/2007/09/03/what-is-software-design/</link>
		<comments>http://learnsoftwareprocesses.com/2007/09/03/what-is-software-design/#comments</comments>
		<pubDate>Mon, 03 Sep 2007 03:07:01 +0000</pubDate>
		<dc:creator>ashish</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Process]]></category>
		<category><![CDATA[SDLC]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Techniques]]></category>
		<category><![CDATA[Terms]]></category>

		<guid isPermaLink="false">http://learnsoftwareprocesses.com/2007/09/03/what-is-software-design/</guid>
		<description><![CDATA[<p>What is software design ? This is not a straight-forward question, but let me attempt to answer this question:</p> <p>Software design is a process of problem-solving and planning for a software solution. After the purpose and specifications of software is determined, software developers will design or employ designers to develop a plan for a solution. [...]]]></description>
			<content:encoded><![CDATA[<p>What is software design ? This is not a straight-forward question, but let me attempt to answer this question:</p>
<p>Software design is a process of problem-solving and planning for a software solution. After the purpose and specifications of software is determined, software developers will design or employ designers to develop a plan for a solution. It includes low-level component and algorithm implementation issues as well as the architectural view. The software requirements analysis (SRA) step of a software development process yields specifications that are used in software engineering. A software design may be platform-independent or platform-specific, depending on the availability of the technology called for by the design.<br />
Design is a meaningful engineering representation of something that is to be built. It can be traced to a customer&#8217;s requirements and at the same time assessed for for quality against a set of predefined criteria for &#8216;good&#8217; design. In the software engineering context, design focuses on four major areas of concern, data, architecture, interfaces, and components.<br />
Designing software is an exercise in managing complexity. The complexity exits within the software design itself, within the software organization of the company, and within the industry as a whole. Software design is very similar to systems design. It can span multiple technologies and often involves multiple sub-disciplines. Software specifications tend to be fluid, and change rapidly and often, usually while the design process is still going on. Software development teams also tend to be fluid, likewise often changing in the middle of the design process. In many ways, software bears more resemblance to complex social or organic systems than to hardware. All of this makes software design a difficult and error prone process.<br />
Software design documentation may be reviewed or presented to allow constraints, specifications and even requirements to be adjusted prior to programming. Redesign may occur after review of a programmed simulation or prototype. It is possible to design software in the process of programming, without a plan or requirement analysis, but for more complex projects this would not be considered a professional approach.</p>
<div class="addthis_toolbox addthis_default_style " addthis:url='http://learnsoftwareprocesses.com/2007/09/03/what-is-software-design/' addthis:title='What is software design ? '  ><a class="addthis_button_facebook_like" fb:like:layout="button_count"></a><a class="addthis_button_tweet"></a><a class="addthis_button_google_plusone" g:plusone:size="medium"></a><a class="addthis_counter addthis_pill_style"></a></div>]]></content:encoded>
			<wfw:commentRss>http://learnsoftwareprocesses.com/2007/09/03/what-is-software-design/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

