2. SOFTWARE DEVELOPMENT METHODOLOGY
What is Software Development Methodology?
Software development is the process of computer programming, documenting,
testing, and bug fixing involved in creating and maintaining applications and
frameworks resulting in a software product.
A software development methodology or system development
methodology in software engineering is a framework that is used to structure, plan,
and control the process of developing an information system.
3. SOFTWARE DEVELOPMENT METHODOLOGY
There are many but in my point of view the 5 best software development
methodologies we should use..
• Waterfall Model
• Agile Software Development Methodology
• Rapid Application Development (RAD)
• Spiral Model
• Scrum
4. WATERFALL MODEL
Waterfall Model - Advantages
Simple and easy to understand and use
Phases are processed and completed
one at a time.
Clearly defined stages.
Well understood milestones.
Easy to arrange tasks.
Process and results are well
documented.
Waterfall Model - Disadvantages
High amounts of risk and uncertainty.
Not a good model for complex and
object-oriented projects.
It is difficult to measure progress
within stages.
Cannot accommodate changing
requirements.
Integration is done as a "big-bang. at
the very end, which doesn't allow
identifying any technological or
business bottleneck or challenges early.
5. AGILE MODEL
Agile Model- Advantages
Customer satisfaction by rapid,
continuous delivery of useful software.
Working software is delivered
frequently (weeks rather than months).
Face-to-face conversation is the best
form of communication.
Even late changes in requirements are
welcomed
Agile Model - Disadvantages
Only senior programmers are capable
of taking the kind of decisions required
during the development process. Hence
it has no place for newbie
programmers, unless combined with
experienced resources.
In case of some software deliverables,
especially the large ones, it is difficult
to assess the effort required at the
beginning of the software development
life cycle.
6. RAD MODEL
RAD Model- Advantages
• Reduced development time.
• Increases reusability of components
• Quick initial reviews occur
• Encourages customer feedback
• Integration from very beginning solves
a lot of integration issues.
RAD Model - Disadvantages
• Depends on strong team and individual
performances for identifying business
requirements.
• Only system that can be modularized
can be built using RAD
• Requires highly skilled
developers/designers.
• High dependency on modeling skills
• Inapplicable to cheaper projects as cost
of modeling and automated code
generation is very high.
7. SPIRAL MODEL
Spiral Model- 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.
Spiral Model - 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.
8. SCRUM MODEL
Scrum Model- Advantages
• Scrum ensures effective use of time and
money
• Large projects are divided into easily
manageable sprints
• Developments are coded and tested
during the sprint review
• Works well for fast-moving
development projects
• The team gets clear visibility through
scrum meetings
• Scrum, being agile, adopts feedback
from customers and stakeholders
• Short sprints enable changes based on
feedback a lot more easily
Scrum Model - Disadvantages
• Scrum often leads to scope creep, due
to the lack of a definite end-date
• Adopting the Scrum framework in
large teams is challenging
9. SOFTWARE REQUIREMENT ANALYSIS
What is Software Requirement Analysis?
Requirements analysis, also called requirements engineering, is the process of determining
user expectations for a new or modified product. These features, called requirements, must
be quantifiable, relevant and detailed. In software engineering, such requirements are often
called functional specifications.
Requirements analysis, also called requirements engineering, is the process of determining
user expectations for a new or modified product. These features, called requirements, must
be quantifiable, relevant and detailed. In software engineering, such requirements are often
called functional specifications. Requirements analysis is an important aspect of project
management.
10. SOFTWARE REQUIREMENT ANALYSIS
Requirement analysis steps follow while developing software
• Research on Application Requirements
• Research on Technical Issues [developer view]
• Application Basic Features [user view – top level]
• Use Cases [user/developer view – top level]
• User Interface Specification [user/developer view – mid level]
• User Requirements Specification [user/developer view – low level]
12. SWOT ANALYSIS
What is SWOT Analysis?
SWOT Analysis is a useful technique for understanding our business Strengths and
Weaknesses, and for identifying both the Opportunities open to our business and the Threats
we face.
SWOT analysis is a tool for auditing an organization and its environment. It is the first stage
of planning and helps marketers to focus on key issues. SWOT stands for strengths,
weaknesses, opportunities, and threats. Strengths and weaknesses are internal factors.
Opportunities and threats are external factors. A strength is a positive internal factor. A
weakness is a negative internal factor. An opportunity is a positive external factor. A threat is a
negative external factor.
13. SWOT ANALYSIS SIMPLE RULES
• Be realistic about the strengths and weaknesses of your organization.
• It should distinguish between where your organization is today, and where it could be in
the future.
• It should always be specific. Avoid grey areas.
• Always apply the tool in relation to your competition i.e. better than or worse than your
competition.
• Keep your audit short and simple. Avoid complexity and over analysis
• It is subjective.
• Once key issues have been identified with your SWOT analysis, they feed
into marketing objectives. The tool can be used in conjunction with other tools for audit
and analysis, such as PEST analysis and Porter’s Five-Forces analysis. So SWOT is a very
popular tool with marketing students because it is quick and easy to learn. During the
SWOT exercise, list factors in the relevant boxes. It’s that simple. Below are some FREE
examples of SWOT analysis – click to go straight to them.
15. QUESTIONS TO ASK DURING A SWOT ANALYSIS
I’ve compiled some questions below to help us develop each section of your SWOT analysis. There
are certainly other questions we could ask; these are just meant to get us started.
Strengths (internal, positive factors)
• Strengths describe the positive attributes, tangible and intangible, internal to your
organization. They are within your control.
• What do you do well?
• What internal resources do you have? Think about the following:
• Positive attributes of people, such as knowledge, background, education, credentials,
network, reputation, or skills.
• Tangible assets of the company, such as capital, credit, existing customers or distribution
channels, patents, or technology.
• What advantages do you have over your competition?
• Do you have strong research and development capabilities? Manufacturing facilities?
• What other positive aspects, internal to your business, add value or offer you a competitive
advantage?
16. QUESTIONS TO ASK DURING A SWOT ANALYSIS
Weaknesses (internal, negative factors)
Weaknesses are aspects of your business that detract from the value you offer or place you at a
competitive disadvantage. You need to enhance these areas in order to compete with your best
competitor.
• What factors that are within your control detract from your ability to obtain or maintain a
competitive edge?
• What areas need improvement to accomplish your objectives or compete with your strongest
competitor?
• What does your business lack (for example, expertise or access to skills or technology)?
• Does your business have limited resources?
• Is your business in a poor location?
17. QUESTIONS TO ASK DURING A SWOT ANALYSIS
Opportunities (external, positive factors)
Opportunities are external attractive factors that represent reasons your business is likely to
prosper.
• What opportunities exist in your market or the environment that you can benefit from?
• Is the perception of your business positive?
• Has there been recent market growth or have there been other changes in the market the
create an opportunity?
• Is the opportunity ongoing, or is there just a window for it? In other words, how critical is your
timing?
18. QUESTIONS TO ASK DURING A SWOT ANALYSIS
Threats (external, negative factors)
Threats include external factors beyond your control that could place your strategy, or the
business itself, at risk. You have no control over these, but you may benefit by having contingency
plans to address them if they should occur.
• Who are your existing or potential competitors?
• What factors beyond your control could place your business at risk?
• Are there challenges created by an unfavorable trend or development that may lead to
deteriorating revenues or profits?
• What situations might threaten your marketing efforts?
• Has there been a significant change in supplier prices or the availability of raw materials?
• What about shifts in consumer behavior, the economy, or government regulations that could
reduce your sales?
• Has a new product or technology been introduced that makes your products, equipment, or
services obsolete?
19. 4 P’S OF MARKETING
What are the 4 P’s of marketing?
The 4 P’s of marketing are place, price, product, and promotion.
The marketing mix and the 4Ps of marketing are often used as
synonyms for one another. In fact, they are not necessarily the same
thing.
"Marketing mix" is a general phrase used to describe the different kinds
of choices organizations have to make in the whole process of bringing
a product or service to market. The 4Ps is one way – probably the best-
known way – of defining the marketing mix, and was first expressed in
1960 by E. J. McCarthy.
21. UNDERSTANDING THE TOOL
Product/Service
• What does the customer want from the product What needs does it satisfy?
• What features does it have to meet these needs?
• How and where will the customer use it?
• What does it look like? How will customers experience it?
• What size(s), color(s), and so on, should it be?
• What is it to be called?
• How is it branded?
• How is it differentiated versus your competitors?
• What is the most it can cost to provide and still be sold sufficiently profitably?
(See also Price, below.)
22. UNDERSTANDING THE TOOL
Place
• Where do buyers look for your product or service?
• If they look in a store, what kind? A specialist boutique or in a supermarket, or
both? Or online? Or direct, via a catalogue?
• How can you access the right distribution channels?
• Do you need to use a sales force? Or attend trade fairs? Or make online
submissions? Or send samples to catalogue companies?
• What do your competitors do, and how can you learn from that and/or
differentiate?
23. UNDERSTANDING THE TOOL
Price
• What is the value of the product or service to the buyer?
• Are there established price points for products or services in this area?
• Is the customer price sensitive? Will a small decrease in price gain you extra
market share? Or will a small increase be indiscernible, and so gain you extra
profit margin?
• What discounts should be offered to trade customers, or to other specific
segment of market.
• How will your price compare with your competitors?
24. UNDERSTANDING THE TOOL
Promotion
• Where and when can you get your marketing messages across to your target
market?
• Will you reach your audience by advertising online, in the press, on TV,
on radio, or on billboards? By using direct marketing mailshots? Through PR?
On the Internet?
• When is the best time to promote? Is there seasonality in the market? Are
there any wider environmental issues that suggest or dictate the timing of
your market launch or subsequent promotions?
• How do your competitors do their promotions? And how does that influence
your choice of promotional activity?
25. SOFTWARE ARCHITECTURE
What is Software Architecture?
Software architecture refers to the high level structures of a software system,
the discipline of creating such structures, and the documentation of these
structures. These structures are needed to reason about the software system.
27. SOFTWARE ARCHITECTURE
Key Design Principles
• When getting started with your design, keep in mind the key principles that will help you
to create an architecture that adheres to proven principles, minimizes costs and
maintenance requirements, and promotes usability and extendibility. The key principles
are:
• Separation of concerns. Divide your application into distinct features with as little
overlap in functionality as possible. The important factor is minimization of interaction
points to achieve high cohesion and low coupling. However, separating functionality at the
wrong boundaries can result in high coupling and complexity between features even
though the contained functionality within a feature does not significantly overlap.
• Single Responsibility principle. Each component or module should be responsible for
only a specific feature or functionality, or aggregation of cohesive functionality.
Ref : https://msdn.microsoft.com/en-us/library/ee658124.aspx
28. SOFTWARE ARCHITECTURE
Key Design Principles
• Principle of Least Knowledge (also known as the Law of Demeter or LoD). A component
or object should not know about internal details of other components or objects.
• Don’t repeat yourself (DRY). You should only need to specify intent in one place. For
example, in terms of application design, specific functionality should be implemented in
only one component; the functionality should not be duplicated in any other component.
• Minimize upfront design. Only design what is necessary. In some cases, you may require
upfront comprehensive design and testing if the cost of development or a failure in the
design is very high. In other cases, especially for agile development, you can avoid big
design upfront (BDUF). If your application requirements are unclear, or if there is a
possibility of the design evolving over time, avoid making a large design effort prematurely.
This principle is sometimes known as YAGNI.
Ref : https://msdn.microsoft.com/en-us/library/ee658124.aspx
29. SOFTWARE ARCHITECTURE
What is cohesion and coupling?
Cohesion in software engineering is the degree to which the
elements of a certain module belong together. Thus, it is a measure
of how strongly related each piece of functionality expressed by
the source code of a software module is.
Coupling in simple words, is how much one component (again,
imagine a class, although not necessarily) knows about the inner
workings or inner elements of another one, i.e. how much
knowledge it has of the other component.
31. SOFTWARE ARCHITECTURE
Software Reusability
In computer science and software engineering, reusability is the
use of existing assets in some form within the software product
development process. Assets are products and by-products of
the software development life cycle and include code,
software components, test suites, designs and documentation.
32. PREPARING TEST CASES
What is a Test Case?
Test cases for software help guide the tester through a sequence of steps to
validate whether a software application is free of bugs and working as
required by the end user. Learning how to write test cases for
software requires basic writing skills, attention to detail, and a good
understanding of the application under test (AUT).
33. PREPARING TEST CASES
What Fields Need to be Included in a Test Case?
• Test Case ID: Unique Test Case Identification Number.
• Purpose: A short sentence about what is being tested.
• Prerequisite: Conditions that must be met before the test case can be run.
For example, the user must be logged in.
• Test Data: List of variables and possible values used in the test case.
Examples: loginID = {Valid loginID, invalid loginID, valid email, invalid
email, empty} password = {valid, invalid, empty}
• Test Steps: Detailed steps for test case execution.
34. PREPARING TEST CASES
What Fields Need to be Included in a Test Case?
• Expected Results: How the application should perform after
executing the above testing steps.
• Actual Results: How application actually behaved after executing the
above testing steps.
• Result: Does the test “Pass” or “Fail”.
• Comments: This is where the tester can add additional helpful
information like screenshots and descriptions to provide the
developers with the information they will need to correct any defects
found.
35. 5 HELPFUL TIPS TO WRITE BETTER TEST CASES
• Keep it simple: No one is going to accept a test case that is overly complex and can’t easily be
understood. Test cases have to be written in simple language using the company’s template.
• Make it reusable: When creating new test cases, you need to remember that the test cases will be
reused so you need to get it right. The same test case might be reused in another scenario or a test
step could be reused in another test case.
• Be your own critic: After documenting all the test cases for a scenario, review them from a tester
point-of-view, not as a test case writer. Think about if these test cases are good enough to thoroughly
cover the scenario. Are they easy to understand? Will they be easy to execute and reuse?
• Think about the end user: When writing test scenarios you should always keep the end user top of
mind. If the software provides a bad user experience, that’s bad for business. In many companies, the
most valued testers are the ones who best understand the end user and provide the developers with
feedback to improve the user experience.
• Stay organized: Many companies manage test cases using spreadsheets. As the number of test cases
grows, this can become extremely difficult and inefficient for the team. Today, there are many
software solutions that can help the testing team better organize and manage all the test cases in one
place. You can find a list of the top test case management tools.
36. FEEDBACK
About the Software engineering course my feedback is much
better.
It could best if I could get many practical session in LAB.