0% found this document useful (0 votes)
4 views19 pages

Se Unit-1 Notes

Software is a set of instructions that, when executed, provide desired results and performance, consisting of programs, data structures, and documentation. Key characteristics of software include being engineered rather than manufactured, not wearing out like hardware, and requiring maintainability, efficiency, and adaptability. Software applications can be categorized into system software, application software, embedded software, web-based software, AI software, real-time software, business software, and personal computer software.

Uploaded by

Vinay Dondapati
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)
4 views19 pages

Se Unit-1 Notes

Software is a set of instructions that, when executed, provide desired results and performance, consisting of programs, data structures, and documentation. Key characteristics of software include being engineered rather than manufactured, not wearing out like hardware, and requiring maintainability, efficiency, and adaptability. Software applications can be categorized into system software, application software, embedded software, web-based software, AI software, real-time software, business software, and personal computer software.

Uploaded by

Vinay Dondapati
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/ 19

Q-1 What is software Software?

Ans:
“Software is a set of instruction whenever it executed it provide desired result and performance. “
OR
Software is a collection of
1).Instructions (Computer programs) that when executed provide desir ed function
and performance.
2).Data structure that enable the programs to adequately manipulate information.
And
3).Documents that describe the operation and use of the programs.
Software is a logical entity rather than a physical system element

Q-2 Explain Software characteristics


Ans

[1]. Software is the developed and engineered, it is not manufactured:

 Unlike hardware, software is logical rather than physical. It has to be designed well before
producing it.
 Although some similarities exist between software development and hardware
manufacture, few activities are different. In both activities high quality is achieved through
good design, but the manufacturing phase for hardware and introduces quality problems
that are nonexistent (or easily corrected) for software.
 Both activities require the construction of “product” but the approaches are different.
Software costs are concentrated in engineering. This means that software project cannot be
managed as if they were manufacturing projects.

[2]. Software does not “wear out” :


 As time progresses, the hardware components start deterioration-they are subjected to
environmental maladies such as dust, vibration, temperature etc. and at some point of time
they tend to breakdown.

Figure 1
 Figure (1 ) depicts failure rate as a function of time for hardware. The
relationship often called the “bathtub curve” indicates that hardware exhibits
relatively high failure rate early in its life.
 defects are corrected and the failure rate drops to a steady state level
(hopefully quite low) for some period of time.
 As time passes, however, the failure rate rises again as hardware components
suffer from the cumulative effects of dust, vibrations, abuse, temperature
extremes, etc. Stated simply, hardwa re begins to wear out.

Figure 2 Ide al ized and ac tual fai l ure c urve s for software

 As shown in figure (2), the failur e rate curve for software shows that,
undiscovered defects will cause high failure rates early in the life of a program.
These are corrected (without introducing other errors) and the curve flattens
as shown in figure (2).
 Software doesn’t wear out, but i t does deteriorate. During the software life, it
will undergo change (maintenance). As changes are made, it is likely that some
new defects will introduced, causing the failure rate cure to spike.
 Before the curve can return to the original steady-state f ailure rate, another
change is requested, causing the curve to spike again. Slowly, the minimum
failure rate level begins to rise the software is deteriorating due to change.

[3]. Most software is custom-built, rather than being assembled from


existing components:

 Reusability is an important characteristic of high quality software component.


 A software component should be designed and implemented so that it can be
reused in many different programs.
 Modern reusable components encapsulate both data and the processing that
is applied to the data, enabling the software engineer to create new
applications from reusable parts. For e.g. today’s interactive interfaces are
built using reusable components that enable the creation of graphics windows,
pull down menus and a wide variety of interaction mechanisms.
Software components are built using a programming language that has a
limited vocabulary. An explicitly defined grammar and well -formed rules of
syntax and semantics.

 But Sometimes reusable components does no t fulfill the requirement there


may be some changes we want but because of its complexity of code means we
have to understand the whole component for making some changes to it ,
which is very complex task instead of this we can create a custom component .
[4].Efficiency

 Software is a said to be efficient if it uses the available resources in the most efficient
manner.
 The software should be able to offer a quick response in the least processing time using the
resources at minimum level. The software should efficient perform what the user
demanded and give appropriate response in each case.

[5].Maintainability

 The Characteristics of the software is important for both the software engineer and the
user. If the change is to be required in the software then change leads to the change in the
software so that it performs in accordance with the user requirement.
 The software engineer has to respond very fast if there is any change in the user
requirements. Changes should be performed like this that it will not affect the overall
integrity of the software.

[6].On-time

 The software should be developed on-time. If the software is developed late then it is of no
use. A good engineer always develops the software on-time.

[7].Within budget

 Some of the software gets overrun. Overrun doesn’t mean that the cost of the software
exceeds the limit given by user. But, it mean that the software cost is out of control. So, the
software should be developed in such a manner that it will not overrun and the software
being developed is within budget.

[8].Functionality

 The software system is developed in a manner that it performs the entire task perfectly
for which it is developed. The software should respond correctly as the user wants.
[9].Adaptability

 The software should be Adaptable. Software is desired to be Adaptable all the changes
efficiently. The software should easily adopt all the changes in the software with no
change in the efficiency of the software.

[10]. Dependability

 It is the ability of the software that should not cause any physical or economic damage in
the event of system failure. It includes a range of characteristics like: reusability, security,
and safety.

[11].Usability

 Software become usable if it doesn’t call for extra efforts to be learned. Usability increases
with good documentation provided along with the software.
 If software satisfies all the above characteristics then it is said to be good software or the
software is well engineered.

Q-3. Explain Software application


[1].System software

o System software is a collection of programs written to service the other program. Some
system software process complex but determinate information structure,
o for example, compiler, editors, and file management utilities, etc. other systems
applications process largely indeterminate data, for example, operating system
components, drivers, etc.
o The system software area is characterized by heavy interaction with computer hardware,
heavy usage by multiple users, parallel operation that requires scheduling, resource
sharing, complex data structures, and multiple external interfaces.

[2].Application Software

o Application software consists of stand –alone program that solve a specific business
need. Application in this area process business or technical data in a way that facilitates
business operations or management/technical decision making.

[3].Embedded software

o Embedded software resides in RAM and is used to control products and


systems for the consumer and industrial m arkets.
o Embedded software can perform very limited and esoteric functions (e.g.
key pad control for microwave oven, washing Machine, AC etc.) or provide
significant function and control capability.
o (e.g. Digital functions in an automobile such as fuel cont rol, dashboard
displays, braking system, etc.)
[4]. Web-based software [web-application]

o The web pages retrieved by a browser, are software that incorporates executable
instructions
o (for example, CGI, HTML, or JAVA), and data (for example, hypertext and a variety of
visual and audio formats).‘web-apps’ spreads wide array of application. ‘web-apps’ can
be little more than a set of link hypertext file, that presents information using text and
limited graphics.
o ‘web-apps’ are evolving into sophisticated computing environment that not only provide
stand alone features, computing function and content to the end user but also are
integrated with corporate databases and business applications.

[5]. Artificial intelligence software

o Artificial intelligence (AI)software makes use of non numerical algorithms to solve


problems that are not amenable to computation or straingthforward analysis. Following
application are included in this category:
o Pattern recognition artificial neural network, theorem proving, game playing, etc.

[6]. Real-time software

o Software that monitors and controls real-world events as they occur is called real-time
software.
o Element of real-time software:
data gathering component that collects and formats information from an external
environment.
analysis component that transforms information as required by the application.
control/output component that responds to the external environment.
Monitoring components that coordinates all other components so that real-time
response can be maintained.

[7]. Business software

o Business information processing is the largest single software application area.


o Discrete “ systems” (for example pay roll and inventory) evolved into management
information system (MIS) software that accesses one or more large database maintaining
business information. Application in this area restructures existing data in a way that
facilitates business operations or management decision making.
o Business software application also includes interactive computing.

[8].Personal computer software


o The personal computer software market has grown rapidly.
o Word processing, spreadsheets, computer graphics, multimedia, entertainment, database
management and database access are such application.
Q-5. Explain Software Myths.
There are number of myths associated with software development Community. Some of them
really affect the way, in which software Development should take place.

Myth: Software is easy to change

Reality: It is true that source code files are easy to edit, but that is quite different than
saying that software is easy to change this is unreliable because source code is so easy to alter. But
making changes without introducing errors is extremely difficult, particularly in organizations with poor
process maturity. Every change requires that the complete system be re-verified. If we do not take
proper care, this will be an extremely tedious and expensive process.

Myth: Computer provide greater reliability than the devices they


replace

Reality: It is true that software does not fail in the traditional sense. There are no limits to
how many times a given piece of code can be executed before it “wears out”. In any event, the simple
expression of this myth is that our general ledgers are still not perfectly accurate, even though they
have been computerized. Back in the days of manual accounting systems, human error was a fact of
life. Now, we have software error as well.

Myth: Testing software can remove all the errors

Reality: Testing can only show the presence of errors. It cannot show the absence of errors.
Our aim is to design effective test cases in order to find maximum possible errors. The more we test,
the more we are confident about our design.

Myth: Reusing software increases safety

Reality: This myth is particularly troubling because of the false sense of security that code re-
use can create. Code re-use is a very powerful tool that can yield dramatic improvement in
development efficiency, but it still requires analysis to determine its suitability and testing to
determine if it works.

Myth: Software can work right the first time

Reality: If we go to an aeronautical engineer, and ask him to build a jet fighter craft, he will
give a quotation to us. If we demand that it is to be put in production without building a prototype, he
will laugh and may refuse the job. Yet, software engineers are often asked to do exactly this type of
work, and they often accept the job.
Myth: Software can be designed carefully enough to avoid most integration
problems:

Reality: There is an old saying among software designers:”Too bad, there is no complier for
specifications”. This point out the fundamental difficulty with detailed specifications. They always have
inconsistencies, and there is no computer tool to perform consistency checks on these. Therefore,
special care is required to understand the specifications, and if there is an ambiguity, that should be
resolved before proceeding for design.

Myth: Software with more features is better software


Reality: This is, of course, almost the opposite of the truth. The best, most enduring
programs are those which do one thing well.

Myth: Addition of more software engineers will make up the delay


Reality: This is not true in most of the cases. By the process of adding more software
engineers during the project, we may further delay the project. This does not serve any purpose here,
although this may be true for any civil engineering work.

Myth: Aim is to develop working programs:

Reality: The aim has been shifted from developing working programs to good quality,
maintainable programs. Maintaining software has become a very critical and crucial area for software
engineering community.
This list is endless. These myths, poor quality of software, increasing cost and delay in
the delivery of the software engineering as a discipline.
In addition, following are the contributing factors:
Change in ratio of hardware to software costs
Increasing importance of maintenance
Advances in software techniques
Increased demand for software
Demand for larger and more complex software system.

Q-6 Software Engineering-what is it?


According to IEEE “The systematic approach to the development, operations, maintenance and
refinement of software”.
According to Fritz Bauer-Software Engineering is the establishment and use of sound
engineering principles in order to obtain economical software that is reliable and works efficiently on
real machine.
Thus, the prime aim(goal) of software engineering is
To improve the quality of software products and
To increase the productivity and job satisfaction of software engineers.
Q-7 Software engineering is layered technology-justify statement.

Software Engineering is around the thr ee layers (elements):

- Process

- Methods

- Tools

- Quality Focus

Quality focus:

Main goal of software engineering is quality focus.


A product should meet its specification.

Process:

The foundation for software engineering is a process layer. Software engineering


process is the glue that holds the technology layers together and enables rational,
timely development of computer software.

Process defines a framework for a set of key process areas that must be established for
effective delivery of software engineering technology.

The key process area forms the basis for management control of software projects and
establish the context in which technical methods are applied, work products (models,
documents, data, reports, forms, etc. ) are produced, milestones are established, quality
is ensured, and change is properly managed.

Process is a step by step plan to comple te a task.


Methods:

SE methods provide the technical “how to’s” for building software. Methods
encompass a broad array of tasks that include requirements analysis, design, program
construction, testing and maintenance.

technology and include m odeling activities and other descriptive techniques.

Tools:

SE tools provide automated or semi -automated support for the process and the
methods.

When tools are integrated so that information created by one tool can be used by
another, a system for th e support of software development, called Computer Aided
Software Engineering (CASE) is established.

CASE combines software, hardware and software engineering database ( a repository


containing important information about analysis, design, program constru ction and
testing) to create a software engineering environment that is analogous to CAD/CAE
(Computer Aided Design / Engineering ) for hardware

Q-8 Generic view of Software engineering


the work that is associated with software engineering can be categori zed into three
generic phases:

1. Definition phase
2. Development phase
3. Maintenance phase

Definition Phase:

Definition phase answers “what” questions that is during the definition the
software developers attempts to identify.
 What information is to be processed?
 What function and performance are desired?
 What validation conditions are required?
 What types of interfaces are to be established?
 What design constraints exists?

All the questions can be answered through


1. System Analysis
2. Software Project Planning
3. Requirement Analysis
Development Phase:

Development phase answered “How” questions. In this phase developer


attempts to answer

 How data structure and software architecture are to be designed?


 How procedural details are to be implemented?
 How design will be translated into a programming language?
 How testing will be performed?

All the previous questions can be answered through


1. Software Design
2. Coding and
3. Software Testing

Maintenance Phase:
The maintenance phases focus on change that is associated with:

 Error correction
 Adaptation required
 Enhancement
 Prevention

Error Correction

It is likely that the customer will uncover defects in the software. Corrective
maintenance changes the software to correct defects.

Adaptation

Over time, the original environment (e.g. CPU, OS, Business Rules etc.) for which
the software was developed is likely to change. Adaptive maintenance results in
modification to the software to accommodate c hanges to its external environment.

Enhancement

As software is used, the customer/user will recognize additional functions that will
provide benefit. Perfective maintenance extends the software beyond its original
functional requirements.

Prevention

Computer software deteriorates due to change, and because of this, preventive


maintenance often called software reengineering must be conducted to enable the
software to serve the needs of its end users.

The phases and related steps describ ed in generic view of SE are complemented by a
number of Umbrella Activities as under:
 Software project tracking and control
 Formal technical reviews
 Software quality assurance
 Software Configuration management
 Document preparation and production
 Reusability management
 Measurement
 Risk management

Umbrella activities are applied throughout the software process.

Q-9. Software process model


[1].The Linear sequential model
or
Classic life cycle model
or
Waterfall model
[1]Software requirements analysis
The requirements gathering process is intensified and focused specifically on
software.
Analysis is important for software engineer to understand the information domain
for the software, required functions, behavior, performanc e, and interfacing.
Requirements for both the system and the software are documented and reviewed
with the customer.

[2]. Design
Software design is actually a multi-step process that focuses on data structure,
software architecture, procedural detail and interface characterization.
The design process translates requirements into a representation of the software
that can be assessed for quality before code generation begins.
The design documents must e prepared and stored as a part of software
configuration.

[3]. Coding or implementation


The code generation step translates the design into a machine readable form. If
design is performed in a detailed manner, code generation can be accomplished
mechanistically.

[4]. Testing
Once code has been generated, program testing begins. The testing process
focuses on the logical internals of the software, assuring that all statements have been
tested, and on the functional externals – that is, conducting test to uncover errors and
ensure that defined input will pr oduce actual results that agree with required results.

[5]. Maintenance
Software will undergo change after it is delivered to the customer. Change will
occur because, errors have been encountered or to accommodate changes in its external
environment (e.g . change in device) or customer requires functional or peripheral
enhancement.

Advantages

Simple goal.
Simple to understand and use.
Clearly defined stages.
Well understood milestones.
Easy to arrange tasks.
Process and results are Well documented.
Easy to manage. Each phase has specific deliverable and a review.
Works well for projects where requirements are well understood.
Works well when quality is more important then cost/schedule.
Customers/End users already know about it.

Disadvantages

It is difficult to measure progress within stages.


Cannot accommodate changing requirements.
No working software is produced until late in the life cycle.
Risk and uncertainty is high with this process model.
Adjusting scope during the life cycle can end a project
Not suitable for complex projects
Not suitable for projects of long duration because in long running projects requirements are
likely to change.
Integration is done as a "big-bang” at the very end, which doesn't allow to identify any
technological or business bottleneck or challenges early.
Users can only judge quality at the end.
Attempt to go back 2 or more phases is very costly.
Percentage completion of functionality can not be determined in mid of the project because
every functionality is undergoing some phase.
Very risky, since one process can not start before finishing the other.

[2].Spiral model
The spiral model is similar to the incremental model, with more emphasis placed on risk analysis. The
spiral model has four phases:

 Planning,
 Risk Analysis,
 Engineering
 Evaluation.

A software project repeatedly passes through these phases in iterations (called Spirals in this model).
The baseline spiral, starting in the planning phase, requirements is gathered and risk is assessed. Each
subsequent spiral builds on the baseline spiral.

Planning:
Requirements are gathered during the planning phase.

Risk analysis:
In the risk analysis phase, a process is undertaken to identify risk and alternate solutions.
A prototype is produced at the end of the risk analysis phase.
Engineering:
Software is produced in the engineering phase, along with testing at the end of the phase.

Evolution phase:

The evaluation phase allows the customer to evaluate the output of the project to date before the
project continues to the next spiral.

Diagram of Spiral model:

Advantages

Changing requirements can be accommodated.


Allows for extensive use of prototypes
Requirements can be captured more accurately.
Users see the system early.
Development can be divided in to smaller parts and more risky parts can be developed earlier
which helps better risk management.
Disadvantages

Management is more complex.


End of project may not be known early.
Not suitable for small or low risk projects (expensive for small projects).
Process is complex
Spiral may go indefinitely.
Large number of intermediate stages requires excessive documentation.

[3].Incremental model:

 In incremental model the whole requirement is divided into various builds. Multiple
development cycles take place here, making the life cycle a “multi-waterfall” cycle.
 Cycles are divided up into smaller, more easily managed modules.
 Each module passes through the requirements, design, implementation and testing phases.
 A working version of software is produced during the first module, so you have working
software early on during the software life cycle.
 Each subsequent release of the module adds function to the previous release. The process
continues till the complete system is achieved.
 For example:

In the diagram above when we work incrementally we are adding piece by piece but expect that each
piece is fully finished. Thus keep on adding the pieces until it’s complete.

Diagram of Incremental model:


[1]Software requirements analysis
The requirements gathering process is intensified and focused specifical ly on
software.
Analysis is important for software engineer to understand the information domain
for the software, required functions, behavior, performance, and interfacing.
Requirements for both the system and the software are documented and reviewed
with the customer.

[2]. Design
Software design is actually a multi-step process that focuses on data structure,
software architecture, procedural detail and interface characterization.
The design process translates requirements into a representation of t he software
that can be assessed for quality before code generation begins.
The design documents must e prepared and stored as a part of software
configuration.

[3]. Coding or implementation


The code generation step translates the design into a machine re adable form. If
design is performed in a detailed manner, code generation can be accomplished
mechanistically.

[4]. Testing
Once code has been generated, program testing begins. The testing process
focuses on the logical internals of the software, assuri ng that all statements have been
tested, and on the functional externals – that is, conducting test to uncover errors and
ensure that defined input will produce actual results that agree with required results.

[5]. Maintenance
Software will undergo chang e after it is delivered to the customer. Change will
occur because, errors have been encountered or to accommodate changes in its external
environment (e.g. change in device) or customer requires functional or peripheral
enhancement.
Advantages

Some working functionality can be developed quickly and early in the life cycle.
Results are obtained early and periodically.
Parallel development can be planned.
Progress can be measured.
Less costly to change the scope/requirements.
Testing and debugging during smaller iteration is easy.
Risks are identified and resolved during an iteration; and each iteration is an easily managed
milestone.
Easier to manage risk - High risk part is done first.
With every increment operational product is delivered.
Issues, challenges & risks identified from each increment can be utilized/applied to the next
increment.

Disadvantages

More resources may be required.


Although cost of change is lesser but it is not very suitable for changing requirements.
More management attention is required.
Each phase of an iteration is rigid with no overlaps.
System architecture or design issues may arise because not all requirements are gathered. up
front for the entire life cycle.
Does not allow iterations within an increment.
Defining increments may require definition of the complete system.

Q-10.Requirement Gathering techniques.

Or

Fact finding techniques


 To study any system the analyst needs to do collect facts and all relevant information. the facts
when expressed in quantitative form are termed as data.
 The success of any project is depended upon the accuracy of available data.
 Accurate information can be collected with help of certain methods/ techniques.
 These specific methods for finding information of the system are termed as fact finding
techniques.
 Fact finding methods are as follows::
[1].Interview

[2].Questionnaire

[3].Record View

[4].Observations

[5].Joint application Development(JAD)

[6].FAST (Facilitated Application Specifications Techniques)

are the different fact finding techniques used by the analyst. The analyst may use more than one
technique for investigation.

[1].Interview:
 Interview is a fact finding technique where two parties work together, One person acts as an
interviewer and other as interviewee. The person who collect information is known as system
analyst who play the role of as interviewer.
 This method is used to collect the information from groups or individuals. Analyst selects the
people who are related with the system for the interview. In this method the analyst sits face to
face with the people and records their responses.
 The interviewer must plan in advance the type of questions he/ she is going to ask and should
be ready to answer any type of question. He should also choose a suitable place and time which
will be comfortable for the respondent.
 The information collected is quite accurate and reliable as the interviewer can clear and cross
check the doubts there itself.
 This method also helps gap the areas of misunderstandings and help to discuss about the future
problems. Structured and unstructured are the two sub categories of Interview.

Structured interview:
Structured interview is more formal interview where fixed questions are asked and
specific information is collected.

Unstructured interview:
Unstructured interview is more or less like a casual conversation where in-depth areas
topics are covered and other information apart from the topic may also be obtained.

Advantages:

[1].It is effective technique when client can not communicate effectively in writing.

[2].It permit client to reply freely and openly to any type of question.

Disadvantages:

[1].It is very time consuming.

[2].if suitable environment is not provide for conducting interview then this technique is failed.

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