Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 26

1).What are the elements & Characteristics of system?

A system is a set of interacting or interdependent component parts forming a complex or


intricate whole.[1] Every system is delineated by its spatial and temporal boundaries, surrounded
and influenced by its environment, described by its structure and purpose and expressed in its
functioning.
Alternatively, and usually in the context of complex social systems, the term is used to describe
the set of rules that govern structure or behavior.
A system has three basic elements input, processing and output. The other elements include
control, feedback, boundaries, environment and interfaces.

 Input: Input is what data the system receives to produce a certain output.

 Output: What goes out from the system after being processed is known as Output.

 Processing: The process involved to transform input into output is known as


Processing.

 Control: In order to get the desired results it is essential to monitor and control the input,
Processing and the output of the system. This job is done by the control.

 Feedback: The Output is checked with the desired standards of the output set and the
necessary steps are taken for achieving the output as per the standards, this process is
called as Feedback. It helps to achieve a much better control in the system.

 Boundaries: The boundaries are nothing but the limit of the system. Setting up
boundaries helps for better concentration of the actives carried in the system.

 Environment: The things outside the boundary of the system are known as
environment. Change in the environment affects the working of the system.

 Interfaces: The interconnections and the interactions between the sub-systems is


known as the Interfaces. They may be inputs and outputs of the systems.

Elements of a communication system


Characteristic of system
A big system may be seen as a set of interacting smaller systems known as
subsystems or functional units each of which has its defined tasks. All these work in
coordination to achieve the overall objective of the system. System engineering requires
development of a strong foundation in understanding how to characterize a system,
product, or service in terms of its attributes, properties, and performance.

As discussed above, a system is a set of components working together to achieve some goal. The
basic elements of the system may be listed as:

 Resources
 Procedures
 Data/Information
 Intermediate Data
 Processes

Resources

Every system requires certain resources for the system to exist. Resources can be hardware,
software or liveware. Hardware resources may include the computer, its peripherals, stationery
etc. Software resources would include the programs running on these computers and the liveware
would include the human beings required to operate the system and make it functional.

Thus these resources make an important component of any system. For instance, a Banking
system cannot function without the required stationery like cheque books, pass books etc. such
systems also need computers to maintain their data and trained staff to operate these computers
and cater to the customer requirements.

Procedures

Every system functions under a set of rules that govern the system to accomplish the defined
goal of the system. This set of rules defines the procedures for the system to Chapter 1 -
Introduction to Systems operate. For instance, the Banking systems have their predefined rules
for providing interest at different rates for different types of accounts.

Data/Information

Every system has some predefined goal. For achieving the goal the system requires certain
inputs, which are converted into the required output. The main objective of the System is to
produce some useful output. Output is the outcome of processing. Output can be of any nature
e.g. goods, services or information.
However, the Output must conform to the customer's expectations. Inputs are the elements that
enter the system and produce Output. Input can be of various kinds, like material, information,
etc.

Intermediate Data

Various processes process system's Inputs. Before it is transformed into Output, it goes through
many intermediary transformations. Therefore, it is very important to identify the Intermediate
Data. For example, in a college when students register for a new semester, the initial form
submitted by student goes through many departments. Each department adds their validity
checks on it.

Finally the form gets transformed and the student gets a slip that states whether the student has
been registered for the requested subjects or not. It helps in building the System in a better way.
Intermediate forms of data occur when there is a lot of processing on the input data. So,
intermediate data should be handled as carefully as other data since the output depends upon it.

Processes

The systems have some processes that make use of the resources to achieve the set goal under
the defined procedures. These processes are the operational element of the system.

For instance in a Banking system there are several processes that are carried out. Consider for
example the processing of a cheque as a process. A cheque passes through several stages before
it actually gets processed and converted. These are some of the processes of the Banking system.
All these components together make a complete functional system.

Systems also exhibit certain features and characteristics, some of


which are:
Objective

Every system has a predefined goal or objective towards which it works. A system cannot exist
without a defined objective. For example an organization would have an objective of earning
maximum possible revenues, for which each department and each individual has to work in
coordination.

Standards

It is the acceptable level of performance for any system. Systems should be designed to meet
standards. Standards can be business specific or organization specific.

For example take a sorting problem. There are various sorting algorithms. But each has its own
complexity. So such algorithm should be used that gives most optimum efficiency. So there
should be a standard or rule to use a particular algorithm. It should be seen whether that
algorithm is implemented in the system.

Environment

Every system whether it is natural or man made co-exists with an environment. It is very
important for a system to adapt itself to its environment. Also, for a system to exist it should
change according to the changing environment. For example, we humans live in a particular
environment. As we move to other places, there are changes in the surroundings but our body
gradually adapts to the new environment. If it were not the case, then it would have been very
difficult for human to survive for so many thousand years.

Another example can be Y2K problem for computer systems. Those systems, which are not Y2K
compliant, will not be able to work properly after year 2000. For computer systems to survive it
is important these systems are made Y2K compliant or Y2K ready.

Feed Back

Feedback is an important element of systems. The output of a system needs to be observed and
feedback from the output taken so as to improve the system and make it achieve the laid
standards. In fig 1.1, it is shown that a system takes input. It then transforms it into output. Also
some feedback can come from customer (regarding quality) or it can be some intermediate data
(the output of one process and input for the other) that is required to produce final output.

Boundaries and Interfaces

Every system has defined boundaries within which it operates. Beyond these limits the system
has to interact with the other systems. For instance, Personnel system in an organization has its
work domain with defined procedures. If the financial details of an employee are required, the
system has to interact with the Accounting system to get the required details.

Interfaces are another important element through which the system interacts with the outside
world. System interacts with other systems through its interfaces. Users of the systems also
interact with it through interfaces. Therefore, these should be customized to the user needs.
These should be as user friendly as possible.

User interface design


2.)Discuss the Bahavior issue involved in understanding the
Analyst/User Interface?
User interface design (UI) or user interface engineering is the design of user
interfaces for machines and software, such as computers, home appliances, mobile
devices, and other electronic devices, with the focus on maximizing usability and
the user experience. The goal of user interface design is to make the user's
interaction as simple and efficient as possible, in terms of accomplishing user goals
(user-centered design).

Good user interface design facilitates finishing the task at hand without drawing
unnecessary attention to itself. Graphic design and typography are utilized to
support its usability, influencing how the user performs certain interactions and
improving the aesthetic appeal of the design; design aesthetics may enhance or
detract from the ability of users to use the functions of the interface.[1] The design
process must balance technical functionality and visual elements (e.g., mental
model) to create a system that is not only operational but also usable and adaptable
to changing user needs.

Interface design is involved in a wide range of projects from computer systems, to


cars, to commercial planes; all of these projects involve much of the same basic
human interactions yet also require some unique skills and knowledge. As a result,
designers tend to specialize in certain types of projects and have skills centered on
their expertise, whether that be software design, user research, web design, or
industrial design.

 Processes

User interface design requires a good understanding of user needs. There are
several phases and processes in the user interface design, some of which are more
demanded upon than others, depending on the project.[2] (Note: for the remainder
of this section, the word system is used to denote any project whether it is a
website, application, or device.)

 Functionality requirements gathering – assembling a list of the functionality


required by the system to accomplish the goals of the project and the
potential needs of the users.
 User and task analysis – a form of field research, it's the analysis of the
potential users of the system by studying how they perform the tasks that
the design must support, and conducting interviews to elucidate their
goals.[3] Typical questions involve:
o What would the user want the system to do?
o How would the system fit in with the user's normal workflow or daily
activities?
o How technically savvy is the user and what similar systems does the
user already use?
o What interface look & feel styles appeal to the user?
 Information architecture – development of the process and/or information
flow of the system (i.e. for phone tree systems, this would be an option
tree flowchart and for web sites this would be a site flow that shows the
hierarchy of the pages).
 Prototyping – development of wire-frames, either in the form of paper
prototypes or simple interactive screens. These prototypes are stripped of
all look & feel elements and most content in order to concentrate on the
interface.
 Requirements

The dynamic characteristics of a system are described in terms of the dialogue


requirements contained in seven principles of part 10 of the ergonomics standard,
the ISO 9241. This standard establishes a framework of ergonomic "principles" for
the dialogue techniques with high-level definitions and illustrative applications and
examples of the principles. The principles of the dialogue represent the dynamic
aspects of the interface and can be mostly regarded as the "feel" of the interface.
The seven dialogue principles are:

 Suitability for the task: the dialogue is suitable for a task when it supports
the user in the effective and efficient completion of the task.
 Self-descriptiveness: the dialogue is self-descriptive when each dialogue
step is immediately comprehensible through feedback from the system or
is explained to the user on request.
 Controllability: the dialogue is controllable when the user is able to initiate
and control the direction and pace of the interaction until the point at
which the goal has been met.
 Conformity with user expectations: the dialogue conforms with user
expectations when it is consistent and corresponds to the user
characteristics, such as task knowledge, education, experience, and to
commonly accepted conventions.
 Error tolerance: the dialogue is error tolerant if despite evident errors in
input, the intended result may be achieved with either no or minimal action
by the user.
 Suitability for individualization: the dialogue is capable of individualization
when the interface software can be modified to suit the task needs,
individual preferences, and skills of the user.
 Suitability for learning: the dialogue is suitable for learning when it supports
and guides the user in learning to use the system.

The concept of usability is defined of the ISO 9241 standard by effectiveness,


efficiency, and satisfaction of the user. Part 11 gives the following definition of
usability:

 Usability is measured by the extent to which the intended goals of use of


the overall system are achieved (effectiveness).
 The resources that have to be expended to achieve the intended goals
(efficiency).
 The extent to which the user finds the overall system acceptable
(satisfaction).

Effectiveness, efficiency, and satisfaction can be seen as quality factors of


usability. To evaluate these factors, they need to be decomposed into sub-factors,
and finally, into usability measures.

The information presentation is described in Part 12 of the ISO 9241 standard for
the organization of information (arrangement, alignment, grouping, labels,
location), for the display of graphical objects, and for the coding of information
(abbreviation, color, size, shape, visual cues) by seven attributes. The "attributes of
presented information" represent the static aspects of the interface and can be
generally regarded as the "look" of the interface. The attributes are detailed in the
recommendations given in the standard. Each of the recommendations supports
one or more of the seven attributes. The seven presentation attributes are:

 Clarity: the information content is conveyed quickly and accurately.


 Discriminability: the displayed information can be distinguished accurately.
 Conciseness: users are not overloaded with extraneous information.
 Consistency: a unique design, conformity with user's expectation.
 Detectability: the user's attention is directed towards information required.
 Legibility: information is easy to read.
 Comprehensibility: the meaning is clearly understandable, unambiguous,
interpretable, and recognizable.

The user guidance in Part 13 of the ISO 9241 standard describes that the user
guidance information should be readily distinguishable from other displayed
information and should be specific for the current context of use. User guidance
can be given by the following five means:

 Prompts indicating explicitly (specific prompts) or implicitly (generic


prompts) that the system is available for input.
 Feedback informing about the user's input timely, perceptible, and non-
intrusive.
 Status information indicating the continuing state of the application, the
system's hardware and software components, and the user's activities.
 Error management including error prevention, error correction, user
support for error management, and error messages.
 On-line help for system-initiated and user initiated requests with specific
information for the current context of use.

 Research

User interface design has been a topic of considerable research, including on its
aesthetics.[5] Standards have been developed as far back as the 1980s for defining
the usability of software products. One of the structural bases has become the IFIP
user interface reference model. The model proposes four dimensions to structure
the user interface:

 The input/output dimension (the look)


 The dialogue dimension (the feel)
 The technical or functional dimension (the access to tools and services)
 The organizational dimension (the communication and co-operation
support)

This model has greatly influenced the development of the international standard
ISO 9241 describing the interface design requirements for usability. The desire to
understand application-specific UI issues early in software development, even as
an application was being developed, led to research on GUI rapid prototyping tools
that might offer convincing simulations of how an actual application might behave
in production use.[6] Some of this research has shown that a wide variety of
programming tasks for GUI-based software can, in fact, be specified through
means other than writing program code.[7]

According to a study by Stafford et. al, each member of an interface development


team can be placed in one of the following four categories:

 Conceptual supervisors – People who envision the project. They know what
they want the interface to be able to do and they are responsible for guiding
the other members of the team to ensure that their vision is realized.
 Visual Designers – Professionally trained in the art of information design. They
help conceptual supervisors visualize the interface.
 Programmers/Implementers – They are responsible for functionality; they
interpret an interface design by writing the code to transform it into a
functioning tool.
 User – They test the interface and verify that they find it usable. They give
input that helps the Programmers/Implementers fine tune the interface,
making the interface behave in a manner that is more familiar and easy to use.
User study was invaluable in helping refine interface design. Thanks to user
feedback, the interface design is now visually connected to the rest of the
interface and behaves in a manner that users find more familiar and easy to
use.

Each type of contributor is invaluable and the most successful projects will have at
least one representative of each category involved throughout implementation. .[8]

Research in recent years is strongly motivated by the increasing variety of devices


that can, by virtue of Moore's law, host very complex interfaces.[9]

Research has also been conducted on generating user interfaces automatically, to


match a user's level of ability for different levels of interaction.[10]

At the moment, in addition to traditional prototypes the literature proposes new


solutions, such as an experimental mixed prototype based on a configurable
physical prototype that allow to achieve a complete sense of touch, thanks to the
physical mock-up, and a realistic visual experience, thanks to the superimposition
of the virtual interface on the physical prototype with Augmented Reality tech
3.) what are the Characteristics of open system?
An open system is one that continuously interacts with its environment for
taking inputs and giving outputs. An open system has the following
characteristics

Top 10 Characteristics of open system

1. Importation of Energy: An open system takes energy — various types of


inputs — from the environment. Without these inputs, no open system can
survive.

2. Throughput: An open system converts the inputs into some kind of


outputs. This process is known as throughput or transformation process. A
business organization may convert inputs like materials, energy, information
into goods and services through the transformation process.

3. Outputs: An open system exports some outputs to the environment.


Organizations export goods and services. The manner in which they export
outputs determines their viability and existence.

4. System as Cycles of Events: The pattern of activities — inflow of inputs,


throughput, outflow of outputs — has a cyclic character. The outputs exported
to the environment furnish sources of inputs for the repetition of cycle of
activities.

5. Negative Entropy: Entropy is the law of nature which suggests that all
organized forms move towards disorganization and demise. In order to
survive, open systems must move to arrest the entropic process; they must
acquire negative entropy. This is possible by importing more energy from the
environment than what a system spends. For example, a business organization
must earn profit in order to survive on long-term basis.

6. Feedback Mechanism: An open system has.feedback mechanism


through which it imports information from the environment. The simplest
type of information input is in the form of negative feedback. Information
feedback of negative type enables the system to correct its deviations from the
desired course of actions.

7. Steady State: The importation of energy from the environment to


maintain negative entropy has some constancy in energy exchange so that the
system has steady state. However, this steady state is not motionless or a true
equilibrium. Since energy import and export is a continuous process, a new
equilibrium may be formed.

8. Differentiation: An open system moves in the direction of differentiation


and elaboration. Old patterns are changed by new specialized functions.
Organizations, like other open systems, move towards well-differentiation and
specialization of roles and functions. As the conditions permit, organizations
bring more specialists and create specialized departments to have better
control over the environment.

9. Integration and Coordination: As differentiation progresses, the


system must provide some mechanisms for integrating and coordinating
various parts. In the case of an organization, this is done through devising
various processes and procedures.

10. Equifinality: An open system is characterized by the principle of


equifinality which suggests that a system can reach the same final state from
differing initial conditions and by a variety of paths. It implies that not all
organizations may choose the same course of actions and strategies to be

successful. .

4).How Prototyping is used in determining information


Requirement?
PROTOTYPING
The third strategy for determining user information requirements is used when the user cannot
establish information needs accurately before the information system is built. The reason could
be the lack of an existing model on which to decide requirements or a difficulty in visualizing
candidate system. In this case the user need to consider real life systems from which
adjustments can be made. This iterative approach first set up the initial requirements and builds
a system to meet these requirements. As users gain experience, they request additional
requirements or modifications and the process continues. Prototyping is suitable for
environments where it is difficult to formulate a concrete model for defining information
requirements. Prototyping strategy is appropriate for determining high uncertainty information
requirement.
Prototyping is a relatively modern technique for gathering requirements. In this approach, you
gather preliminary requirements that you use to build an initial version of the solution — a
prototype. You show this to the client, who then gives you additional requirements. You change
the application and cycle around with the client again. This repetitive process continues until the
product meets the critical mass of business needs or for an agreed number of iterations

There are three general approaches for getting information regarding the users requirements.
They are

 Asking
 Getting information from the existing information system
 Prototyping.

ASKING

This strategy obtains information from users by simply asking them about the requirements. It
assumes a stable system where users are well informed and can overcome biases in defining
their problem. There are three key asking methods.

1. Questions: Questions may be open-ended or closed. An open-ended question allows the


respondent to formulate a response. It is used when feelings or opinions are important. A closed
question requests one answer from a specific set of responses. It is used when factual
responses are known.

2. Brainstorming: Brainstorming is a technique used for generating new ideas and obtaining
general information requirements. This method is appropriate for getting non conventional
solutions to problems. A guided approach to brainstroming asks each participant to define ideal
solutions and then select the best one. It works well for users who have sound system
knowledge but have the difficulty of accepting new ideas.
3.Group consensus: This method asks participants for their expectations regarding specific
variables. Each participant fills out a questionnaire. The results are summarized and given to
participants along with a follow-up questionnaire. Participants are invited to change their
responses. The results are again summarized and given back to the participants. This debate
by questionnaire continues until participants responses have converged enough. This method is
advantageous than brainstorming because the participants are not subjected to psychological
pressure.
GETTING INFORMATION FROM EXISTING INFORMATION SYSTEM

There are two methods in extracting information from an already existing system

1. Data Analysis approach

 Determining information from an existing application is called the data analysis


approach.
 It simply asks the user what information is currently received and what other information
is required.
 It depends on the user for getting accurate information.
 The analyst examines all reports, discusses each piece of information with the user, and
determines unfulfilled information needs by interviewing the user.
 The analyst is primarily involved in improving the existing flow of data to the user.
 The data analysis method is ideal for making structured decisions, although it requires
that users articulate their information requirements.
 A major drawback is a lack of established rules for obtaining and validating information
needs that are not linked to organizational objectives.

2. Decision Analysis

 This method breaks down a problem into parts, which allows the user to focus
separately on the critical issues.
 It also determines policy and organizational objectives relevant to complete each major
decision.
 The analyst and the user then refine the decision process and the information
requirements for a final statement of information requirements.
 In this method information needs are clearly linked to decision and organizational
objectives.
 It is useful for unstructured decisions and information tailored to the user’s decision-
making style.
5).What is System Testing? Explain various typing of system Testing?
System testing of software or hardware is testing conducted on a complete, integrated system to
evaluate the system's compliance with its specified requirements. System testing falls within the
scope of black-box testing, and as such, should require no knowledge of the inner design of the
code or logic. [1]

As a rule, system testing takes, as its input, all of the "integrated" software components that have
passed integration testing and also the software system itself integrated with any applicable
hardware system(s). The purpose of integration testing is to detect any inconsistencies between
the software units that are integrated together (called assemblages) or between any of the
assemblages and the hardware. System testing is a more limited type of testing; it seeks to detect
defects both within the "inter-assemblages" and also within the system as a whole.

Types of tests to include in system testing

The following examples are different types of testing that should be considered during System
testing:

 Graphical user interface testing


 Usability testing
 Software performance testing
 Compatibility testing
 Exception handling
 Load testing
 Volume testing
 Stress testing
 Security testing
 Scalability testing
 Sanity testing
 Smoke testing
 Exploratory testing
 Ad hoc testing
 Regression testing
 Installation testing
 Maintenance testing[clarification needed]
6).Describe Software Implementation
& software maintenance?
A product software implementation method is a systematically structured approach to
effectively integrate a software based service or component into the workflow of an
organizational structure or an individual end-user.

Structured Programming
In the process of coding, the lines of code keep multiplying, thus, size of the software
increases. Gradually, it becomes next to impossible to remember the flow of program.
If one forgets how software and its underlying programs, files, procedures are
constructed it then becomes very difficult to share, debug and modify the program.
The solution to this is structured programming. It encourages the developer to use
subroutines and loops instead of using simple jumps in the code, thereby bringing
clarity in the code and improving its efficiency Structured programming also helps
programmer to reduce coding time and organize code properly.

Structured programming states how the program shall be coded. Structured


programming uses three main concepts:

 Top-down analysis - A software is always made to perform some rational


work. This rational work is known as problem in the software parlance. Thus it
is very important that we understand how to solve the problem. Under top-
down analysis, the problem is broken down into small pieces where each one
has some significance. Each problem is individually solved and steps are clearly
stated about how to solve the problem.

 Modular Programming - While programming, the code is broken down into


smaller group of instructions. These groups are known as modules,
subprograms or subroutines. Modular programming based on the understanding
of top-down analysis. It discourages jumps using ‘goto’ statements in the
program, which often makes the program flow non-traceable. Jumps are
prohibited and modular format is encouraged in structured programming.

 Structured Coding - In reference with top-down analysis, structured coding


sub-divides the modules into further smaller units of code in the order of their
execution. Structured programming uses control structure, which controls the
flow of the program, whereas structured coding uses control structure to
organize its instructions in definable patterns.

Functional Programming
Functional programming is style of programming language, which uses the concepts of
mathematical functions. A function in mathematics should always produce the same
result on receiving the same argument. In procedural languages, the flow of the
program runs through procedures, i.e. the control of program is transferred to the
called procedure. While control flow is transferring from one procedure to another, the
program changes its state.

In procedural programming, it is possible for a procedure to produce different results


when it is called with the same argument, as the program itself can be in different
state while calling it. This is a property as well as a drawback of procedural
programming, in which the sequence or timing of the procedure execution becomes
important.

Functional programming provides means of computation as mathematical functions,


which produces results irrespective of program state. This makes it possible to predict
the behavior of the program.

Functional programming uses the following concepts:

 First class and High-order functions - These functions have capability to


accept another function as argument or they return other functions as results.

 Pure functions - These functions do not include destructive updates, that is,
they do not affect any I/O or memory and if they are not in use, they can easily
be removed without hampering the rest of the program.

 Recursion - Recursion is a programming technique where a function calls itself


and repeats the program code in it unless some pre-defined condition matches.
Recursion is the way of creating loops in functional programming.

 Strict evaluation - It is a method of evaluating the expression passed to a


function as an argument. Functional programming has two types of evaluation
methods, strict (eager) or non-strict (lazy). Strict evaluation always evaluates
the expression before invoking the function. Non-strict evaluation does not
evaluate the expression unless it is needed.

 λ-calculus - Most functional programming languages use λ-calculus as their


type systems. λ-expressions are executed by evaluating them as they occur.

Common Lisp, Scala, Haskell, Erlang and F# are some examples of functional
programming languages.

Programming style
Programming style is set of coding rules followed by all the programmers to write the
code. When multiple programmers work on the same software project, they frequently
need to work with the program code written by some other developer. This becomes
tedious or at times impossible, if all developers do not follow some standard
programming style to code the program.

An appropriate programming style includes using function and variable names relevant
to the intended task, using well-placed indentation, commenting code for the
convenience of reader and overall presentation of code. This makes the program code
readable and understandable by all, which in turn makes debugging and error solving
easier. Also, proper coding style helps ease the documentation and updation.

Coding Guidelines
Practice of coding style varies with organizations, operating systems and language of
coding itself.

The following coding elements may be defined under coding guidelines of an


organization:

 Naming conventions - This section defines how to name functions, variables,


constants and global variables.

 Indenting - This is the space left at the beginning of line, usually 2-8
whitespace or single tab.

 Whitespace - It is generally omitted at the end of line.


 Operators - Defines the rules of writing mathematical, assignment and logical
operators. For example, assignment operator ‘=’ should have space before and
after it, as in “x = 2”.

 Control Structures - The rules of writing if-then-else, case-switch, while-until


and for control flow statements solely and in nested fashion.

 Line length and wrapping - Defines how many characters should be there in
one line, mostly a line is 80 characters long. Wrapping defines how a line should
be wrapped, if is too long.

 Functions - This defines how functions should be declared and invoked, with
and without parameters.

 Variables - This mentions how variables of different data types are declared
and defined.

 Comments - This is one of the important coding components, as the comments


included in the code describe what the code actually does and all other
associated descriptions. This section also helps creating help documentations for
other developers.

Software Documentation
Software documentation is an important part of software process. A well written
document provides a great tool and means of information repository necessary to
know about software process. Software documentation also provides information about
how to use the product.

A well-maintained documentation should involve the following documents:

 Requirement documentation - This documentation works as key tool for


software designer, developer and the test team to carry out their respective
tasks. This document contains all the functional, non-functional and behavioral
description of the intended software.

Source of this document can be previously stored data about the software,
already running software at the client’s end, client’s interview, questionnaires
and research. Generally it is stored in the form of spreadsheet or word
processing document with the high-end software management team.

This documentation works as foundation for the software to be developed and is


majorly used in verification and validation phases. Most test-cases are built
directly from requirement documentation.

 Software Design documentation - These documentations contain all the


necessary information, which are needed to build the software. It contains: (a)
High-level software architecture, (b) Software design details, (c) Data flow
diagrams, (d) Database design

These documents work as repository for developers to implement the software.


Though these documents do not give any details on how to code the program,
they give all necessary information that is required for coding and
implementation.

 Technical documentation - These documentations are maintained by the


developers and actual coders. These documents, as a whole, represent
information about the code. While writing the code, the programmers also
mention objective of the code, who wrote it, where will it be required, what it
does and how it does, what other resources the code uses, etc.

 User documentation - This documentation is different from all the above


explained. All previous documentations are maintained to provide information
about the software and its development process. But user documentation
explains how the software product should work and how it should be used to get
the desired results.

Software Implementation Challenges


There are some challenges faced by the development team while implementing the
software. Some of them are mentioned below:

 Code-reuse - Programming interfaces of present-day languages are very


sophisticated and are equipped huge library functions. Still, to bring the cost
down of end product, the organization management prefers to re-use the code,
which was created earlier for some other software. There are huge issues faced
by programmers for compatibility checks and deciding how much code to re-
use.

 Version Management - Every time a new software is issued to the customer,


developers have to maintain version and configuration related documentation.
This documentation needs to be highly accurate and available on time.

 Target-Host - The software program, which is being developed in the


organization, needs to be designed for host machines at the customers end. But
at times, it is impossible to design a software that works on the target
machines.

Software maintanance
Software maintenance in software engineering is the modification of a software product after
delivery to correct faults, to improve performance or other attributes.[1]

A common perception of maintenance is that it merely involves fixing defects. However, one
study indicated that over 80% of maintenance effort is used for non-corrective actions.[2] This
perception is perpetuated by users submitting problem reports that in reality are functionality
enhancements to the system. More recent studies put the bug-fixing proportion closer to 21%.[3]

Software maintenance and evolution of systems was first addressed by Meir M. Lehman in 1969.
Over a period of twenty years, his research led to the formulation of Lehman's Laws (Lehman
1997). Key findings of his research include that maintenance is really evolutionary development
and that maintenance decisions are aided by understanding what happens to systems (and
software) over time. Lehman demonstrated that systems continue to evolve over time. As they
evolve, they grow more complex unless some action such as code refactoring is taken to reduce
the complexity.

. They categorized maintenance activities into four classes:

 Adaptive – modifying the system to cope with changes in the software environment (DBMS, OS)
[4]

 Perfective – implementing new or changed user requirements which concern functional


enhancements to the software
 Corrective – diagnosing and fixing errors, possibly ones found by users [4]
 Preventive – increasing software maintainability or reliability to prevent problems in the future
[4]
The survey showed that around 75% of the maintenance effort was on the first two types, and
error correction consumed about 21%. Many subsequent studies suggest a similar magnitude of
the problem. Studies show that contribution of end user is crucial during the new requirement
data gathering and analysis. And this is the main cause of any problem during software evolution
and maintenance. So software maintenance is important because it consumes a large part of the
overall lifecycle costs and also the inability to change software quickly and reliably means that
business opportunities are lost. [5] [6] [7]

Importance of software maintenance[edit]

The key software maintenance issues are both managerial and technical. Key management issues
are: alignment with customer priorities, staffing, which organization does maintenance,
estimating costs. Key technical issues are: limited understanding, impact analysis, testing,
maintainability measurement.

Software maintenance is a very broad activity that includes error correction, enhancements of
capabilities, deletion of obsolete capabilities, and optimization. Because change is inevitable,
mechanisms must be developed for evaluation, controlling and making modifications.

So any work done to change the software after it is in operation is considered to be maintenance
work. The purpose is to preserve the value of software over the time. The value can be enhanced
by expanding the customer base, meeting additional requirements, becoming easier to use, more
efficient and employing newer technology. Maintenance may span for 20 years, whereas
development may be 1-2 years.

Software maintenance planning[edit]

An integral part of software is the maintenance one, which requires an accurate maintenance plan
to be prepared during the software development. It should specify how users will request
modifications or report problems. The budget should include resource and cost estimates. A new
decision should be addressed for the developing of every new system feature and its quality
objectives. The software maintenance, which can last for 5–6 years (or even decades) after the
development process, calls for an effective plan which can address the scope of software
maintenance, the tailoring of the post delivery/deployment process, the designation of who will
provide maintenance, and an estimate of the life-cycle costs. The selection of proper enforcement
of standards is the challenging task right from early stage of software engineering which has not
got definite importance by the concerned stakeholders.

Software maintenance processes[edit]

1. The implementation process contains software preparation and transition activities, such as the
conception and creation of the maintenance plan; the preparation for handling problems
identified during development; and the follow-up on product configuration management.
7).Explain the SAD-Forms Design
People read from forms, write on forms and spend hours handling forms and filing forms. The data
the forms carry come from people and the informational output goes to people. Form is a tool with a
message. It is the physical carrier of data-of information. It is an either an authority for action or a
request for action.

Classification of forms:

A printed form is generally classified by what it does in the system. There are three primary
classifications

1.Action: This type of form requests the user to do something.

Example: purchase orders.

2.Memory: This form is a record of historical data that remains in a file, is used for reference, and serves
as control on key details.

Example: Inventory records, purchase records

3.Report: This form guides supervisors and other administrators in the activities. It provides data on a
project or a job.

Example: profit and loss statements, sales analysis report

Requirements of form design:

Form design follows analyzing forms. Since the purpose of a form is to communicate effectively
through forms design, there are several major requirements.
1.Identification and wording: The form title must clearly identify its purpose. Columns and rows should
be labeled to avoid confusion. The form should also be identified by firm name or code number to make
it easy to reorder.

2.Maximum readability and use: The form must be easy to use and fill out. It should be legible,
intelligible and uncomplicated. Ample writing space must be provided for inserting data.

3.Physical factors: The forms composition, color, layout and paper stock should lend themselves to easy
reading. Pages should be numbered when multipage reports are being generated for the user.

4.Order of data items: The data requested should reflect a logical sequence. Related data should be in
adjacent positions. Data copied from source documents should be in the same sequence on both forms.

5.Ease of data entry: If used for data entry, the form should have field positions indicated under each
column of data and should have some indication of where decimal points are.

6.Size and arrangement: The form must be easily stored and filed. It should provide for signatures.
Important items must be in a prominent action on the form.

7.Use of instructions: The instructions that accompany a form should clearly show how it is used and
handled.

8.Efficiency considerations: The form must be cost effective. This means eliminating unnecessary data
and facilitating reading lines across the form.

9.Type of report: Forms design should also consider whether the content is executive summary,
intermediate managerial information, or supporting data. The user requirements for each type
determine the final form design.
Carbon paper as form copier:

Carbon paper is one way of duplicating information in a form. There are two types of carbon,
classified by the action they encounter

1.Glide action carbon is inserted between a set of forms. It allows the glide action of the pencil to
transfer dye to the surface of the sheet beneath.

2.Hammer action carbon is used in typewriters and line printers of computers. The hammer action of
the keys transfers the carbon coating to the sheet beneath.

Various methods of transferring impressions between copies are as follows

1.One time carbon: It is made of inexpensive Kraftex paper. It is interleaved between two sheets in the
form. It is used once and then thrown away. It is the most cost-effective for multipart forms.

2.Carbon backed paper: The back of each form copy is coated with carbon, which transfers data to the
copy beneath.

3.NCR ( No Carbon Required) paper: The top sheet is chemically treated with invisible dye, that allows
impressions to be transferred to the next lower copy. It is the cleanest and the costliest method. Erasing
removes the coating permanently.

The readability of the carbon copies depends on the color and outline. In multiple copies, the copies
below the original should be lighter in weight for easy transfer of the carbon. Generally, one time carbon
is preferred when a small number of copies are required. If carbon is unacceptable, NCR can be used
8).Explain the different levels of quality
Assurance?
Quality assurance (QA) is a way of preventing mistakes or defects in
manufactured products and avoiding problems when delivering solutions or services to
customers; The terms "quality assurance" and "quality control" are often used interchangeably to
refer to ways of ensuring the quality of a service or product.[3] For instance, the term "assurance"
is often used as follows: Implementation of inspection and structured testing as a measure of
quality assurance in a television set software project at Philips Semiconductors is described.[4]
The term "control", however, is used to describe the fifth phase of the DMAIC model. DMAIC is
a data-driven quality strategy used to improve processes.[5]

Quality assurance comprises administrative and procedural activities implemented in a quality


system so that requirements and goals for a product, service or activity will be fulfilled.[3] It is the
systematic measurement, comparison with a standard, monitoring of processes and an associated
feedback loop that confers error prevention.[6] This can be contrasted with quality control, which
is focused on process output.

Two principles included in quality assurance are: "Fit for purpose" (the product should be
suitable for the intended purpose); and "right first time" (mistakes should be eliminated). QA
includes management of the quality of raw materials, assemblies, products and components,
services related to production, and management, production and inspection processes.[citation needed]

Suitable quality is determined by product users, clients or customers, not by society in general. It
is not related to cost, and adjectives or descriptors such as "high" and "poor" are not applicable.
For example, a low priced product may be viewed as having high quality because it is
disposable, whereas another may be viewed as having poor quality because it is not
disposable.[citation needed]

Software Testing Levels


Differences between Software Quality Assurance and Software Quality Control

There are four levels of software testing: Unit >> Integration >> System
>> Acceptance.
Level Summary

A level of the software testing process where individual units/components of a


Unit Testing software/system are tested. The purpose is to validate that each unit of the
software performs as designed.

A level of the software testing process where individual units are combined and
Integration
tested as a group. The purpose of this level of testing is to expose faults in the
Testing
interaction between integrated units.

A level of the software testing process where a complete, integrated


System
system/software is tested. The purpose of this test is to evaluate the system’s
Testing
compliance with the specified requirements.

A level of the software testing process where a system is tested for acceptability.
Acceptance
The purpose of this test is to evaluate the system’s compliance with the business
Testing
requirements and assess whether it is acceptable for delivery.

You might also like