0% found this document useful (0 votes)
136 views

Software Development (1) TT PDF

Software engineering is defined as the process of analyzing user requirements and designing, building, and testing software applications to meet those requirements. It involves scientific and artistic elements. While following a defined process, each software reflects the unique style of its developer, making it an artistic creation. Software development involves complex tasks and flexible timelines, similar to painting a picture. Throw-away prototyping reduces costs by clarifying requirements through a disposable prototype rather than continuing development. Cohesion and coupling measure how well components of a module work together internally and depend on each other.

Uploaded by

Rony Ghosh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
136 views

Software Development (1) TT PDF

Software engineering is defined as the process of analyzing user requirements and designing, building, and testing software applications to meet those requirements. It involves scientific and artistic elements. While following a defined process, each software reflects the unique style of its developer, making it an artistic creation. Software development involves complex tasks and flexible timelines, similar to painting a picture. Throw-away prototyping reduces costs by clarifying requirements through a disposable prototype rather than continuing development. Cohesion and coupling measure how well components of a module work together internally and depend on each other.

Uploaded by

Rony Ghosh
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 13

What is Software Engineering?

Software engineering is defined as a process of analyzing user requirements


and then designing, building, and testing software application which will satisfy
those requirements.
Or.
Software development is the process of designing, planning, and creating a
software program using a highly technical language (code). Prototyping and
deployment are also part of this process.

Software Engineering science or art.


Developers approach software development in a very scientific manner in that
they follow a process. First, they develop the goals of a program, then design
its functions. Once they have the plan in place, they write the code, test the
prototypes, then deploy or turn the product over to the client.
Any seasoned software developer can attest, however, that each piece of
software carries a style in the coding or design that’s unique to its developer.
Software creators start with a vision, and use tools to bring that vision to life.
They refine the product, add finishing touches, and look at it from every angle
to ensure it is exactly how they want their work to be. Due to this fluid nature of
programming software, we can say software development is more of an art than
a science.
Software development is more art than science. Sure, the programming
languages that comprise software development have rules and are highly
systematic, but the application of these languages is an artistic, highly individual
creation. Each piece of software reflects the individual who created it. No two
pieces of software are identical. It is this highly individual nature of software
creation that makes it so artistic, so one-of-a-kind.
Creating software is a highly complex endeavor and because of its organic
nature, it’s quite difficult to determine a timeline for its completion. Determining
how long a piece of software will take to build is a lot like asking a painter how
long it will take to paint a picture. A general idea can be given, but the painter
rarely knows how much time it will take to flesh out details and which details
those will be. The same is true for software development.

What do you mean by throw away prototyping?


Throw-away Prototyping: This type of approach extends the process of
requirements analysis by reducing overall life-cycle costs. The main function
of the prototype is to clarify the requirements and provide additional
information for managers to assess process risks. This prototype is not used
for further system development based on its evaluation. The software process
model, based on the initial throw-away prototyping stage is shown in figure.
There are some problems with this approach as follows-

• Important features are left out of the prototype to simplify the rapid
implementation. It is not possible to prototype some of the important parts
of the system such as safety-critical functions.
• An implementation does not have any legal contract between customer and
contractor.
• The non-functional requirements which concern reliability, robustness and
safety cannot be adequately tested in prototype implementation.

What do you mean by Cohesion & Coupling?


Coupling: Coupling is the measure of the degree of interdependence
between the modules. A good software will have low coupling.

Cohesion: Cohesion is a measure of the degree to which the elements of the


module are functionally related. It is the degree to which all elements directed
towards performing a single task are contained in the component. Basically,
cohesion is the internal glue that keeps the module together. A good software
design will have high cohesion.
Difference between Cohesion & Coupling?
Distinguish between DFD and Flow Chart?
What is meant by “SRS’ document?
A software requirements specification (SRS) is a document that describes what
the software will do and how it will be expected to perform. It also describes the
functionality the product needs to fulfill all stakeholders (business, users) needs.

What is SDLC?
SDLC is a process followed for a software project, within a software
organization. It consists of a detailed plan describing how to develop, maintain,
replace and alter or enhance specific software. The life cycle defines a
methodology for improving the quality of software and the overall development
process.
The following figure is a graphical representation of the various stages of a
typical SDLC.
What is a Decision Tree?
A decision tree is a flow-chart-like tree mechanism, where each internal node
indicates a test on an attribute, each department defines an outcome of the test,
and leaf nodes describe classes or class distributions. The highest node in a
tree is the root node.
Cost Benefit analysis
Cost Benefit analysis is thing that everyone must do so as to think of a powerful
or an efficient system. But while thinking out on cost and benefit analysis, we
also need to find out factors that really affect benefits and costs of system. In
developing cost estimates for a system, we need to consider some of cost
elements. Some elements among them are hardware, personnel, facility,
operating and supply cost. The following are the cost factors :
1. Hardware cost –
Hardware cost includes actual purchase and peripherals (external
devices) that are connected to computer. For example, printer, disk
drive etc. Actually, finding actual cost of hardware is generally more
difficult especially, when system is shared by various users so as to
compared to a system which dedicated stand alone . In some case, best
way is to treat it as operating cost.
2. Personnel costs –
Personnel costs includes EDP staff salaries and benefits as well as pay
for those who are involved in process of development of system. Cost
occurred during development of system which are one time costs and
are also called development cost. Once system is installed, cost of
operating and maintaining system becomes recurring cost that one has
to pay very frequently based on requirement.
3. Facility cost –
Facility cost is amount of money that is spent in preparation of a site
that is physical where application or computer will be in operation. This
includes wiring, flooring, lighting and air conditioning. These costs are
treated as one- time costs and are included into overall cost estimate of
candidate system.
4. Operating costs –
These includes all costs associated with day-to-day(everyday) operation
of system and amount depends on number of shifts, nature of
applications. There are various ways of covering operating costs. One
approach is to treat operating costs as an overhead. Another approach
is to charge money from each authorized user for amount of processing
they require from system. Amount charged is based on computer time
or time they spend on system, staff time ad volume of output produced .
5. Supply costs –
Supply cost are variable costs that increase with increased use of
paper, disks and like. They should be estimated and included in overall
cost of system.
A system is also expected to provide health benefits. First task is to identify
each benefit and then assign some value to it for purpose of cost/ benefit
analysis. Benefits may be tangible and intangible, direct or indirect.
Two major benefits are improving performance and minimizing cost of
processing of system. The performance category emphasizes improvement in
accuracy of or access to information and easier access to system by authorized
users. Minimizing costs through an efficient system – error control or reduction
of staff- is a benefit that should be measured and included in cost/benefit
analysis.
The determination of costs and benefit entails following steps :
6. Identify the costs and benefits pertaining to given project.
7. Categorize the various costs and benefits for analysis.
8. Select a method of evaluation.
9. Interpret the results of the analysis.
10. Take action.

Software Quality Assurance

Software Quality Assurance (SQA) is simply a way to assure quality in the


software. It is the set of activities which ensure processes, procedures as well as
standards are suitable for the project and implemented correctly.
Software Quality Assurance is a process which works parallel to development of
software. It focuses on improving the process of development of software so that
problems can be prevented before they become a major issue. Software Quality
Assurance is a kind of Umbrella activity that is applied throughout the software
process.
Generally the quality of the software is verified by the third party organization like
international standard organizations.
Software quality assurance focuses on:
• software’s portability
• software’s usability
• software’s reusability
• software’s correctness
• software’s maintainability
• software’s error control
Software Quality Assurance has:
11. A quality management approach
12. Formal technical reviews
13. Multi testing strategy
14. Effective software engineering technology
15. Measurement and reporting mechanism

Major Software Quality Assurance Activities:

16. SQA Management Plan:


Make a plan for how you will carry out the sqa through out the project. Think
about which set of software engineering activities are the best for project.
check level of sqa team skills.

17. Set The Check Points:


SQA team should set checkpoints. Evaluate the performance of the project on
the basis of collected data on different check points.

18. Multi testing Strategy:


Do not depend on a single testing approach. When you have a lot of testing
approaches available use them.

19. Measure Change Impact:


The changes for making the correction of an error sometimes re introduces
more errors keep the measure of impact of change on project. Reset the new
change to change check the compatibility of this fix with whole project.

20. Manage Good Relations:


In the working environment managing good relations with other teams
involved in the project development is mandatory. Bad relation of sqa team
with programmers team will impact directly and badly on project. Don’t play
politics.
Benefits of Software Quality Assurance (SQA):

21. SQA produces high quality software.


22. High quality application saves time and cost.
23. SQA is beneficial for better reliability.
24. SQA is beneficial in the condition of no maintenance for a long time.
25. High quality commercial software increase market share of company.
26. Improving the process of creating software.
27. Improves the quality of the software.

Disadvantage of SQA:
There are a number of disadvantages of quality assurance. Some of them include
adding more resources, employing more workers to help maintain quality and so
much more.

What is Beta Testing?


Beta testing also known as user testing takes place at the end users site by the end
users to validate the usability, functionality, compatibility, and reliability testing.

Beta testing adds value to the software development life cycle as it allows the "real"
customer an opportunity to provide inputs into the design, functionality, and usability of
a product. These inputs are not only critical to the success of the product but also an
investment into future products when the gathered data is managed effectively.

Beta Testing - In SDLC


The following diagram explains the fitment of Beta testing in the software development
life cycle:
Beta Testing Dependencies
There are number of factors that depends on the success of beta testing:

• Test Cost
• Number of Test Participants
• Shipping
• Duration of Test
• Demographic coverage

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy