software engineering university of lucknow
TRANSCRIPT
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 1/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
Software engineering
The process of manufacturing software systems. A software system consists of
executable computer code and the supporting documents needed to manufacture,
use, and maintain the code. For example, a word processing system consists of an
executable program (the word processor), user manuals, and the documents, such asrequirements and designs, needed to produce the executable program and manuals
Read more: http://www.answers.com/topic/software-engineering#ixzz1fNbJzwan 1.Software documentation
Software documentation or source code documentation is written text that
accompanies computer software. It either explains how it operates or how
to use it, and may mean different things to people in different roles.
Role of documentation in software development
Documentation is an important part of software engineering. Types of documentation include:
1. Requirements - Statements that identify attributes, capabilities,characteristics, or qualities of a system. This is the foundation for what shall be or has been implemented.
2. Architecture/Design - Overview of software. Includes relations to anenvironment and construction principles to be used in design of software components.
3. Technical - Documentation of code, algorithms, interfaces, and APIs.
4. End User - Manuals for the end-user, system administrators andsupport staff.
5. Marketing - How to market the product and analysis of the marketdemand.
Requirements documentationRequirements documentation is the description of what a
particular software does or shall do. It is used throughoutdevelopment to
communicate what the software does or shall do. It is also used as an
agreement or as the foundation for agreement on what the software shall
do. Requirements are produced and consumed by everyone involved in the
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 2/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
production of software: end users, customers,product managers, project
managers, sales, marketing, software architects, usability
engineers, interaction designers, developers, and testers, to name a few.
Thus, requirements documentation has many different purposes.
Architecture/Design documentation
Architecture documentation is a special breed of design document. Very
little in the architecture documents is specific to the code itself. These
documents do not describe how to program a particular routine, or even
why that particular routine exists in the form that it does, but instead merely
lays out the general requirements that would motivate the existence of such
a routine. A good architecture document is short on details but thick on
explanation. It may suggest approaches for lower level design, but leave
the actual exploration trade studies to other documents.
When talking about Relational Database Systems, the document shouldinclude following parts:
1.Entity - Relationship Schema, including following information and their clear definitions:
2.Entity Sets and their attributes
3.Relationships and their attributes
4.Candidate keys for each entity set
5.Attribute and Tuple based constraints
Technical documentation
This is what most programmers mean when using the term software
documentation. When creating software, code alone is insufficient. There
must be some text along with it to describe various aspects of its intended
operation. It is important for the code documents to be thorough, but not so
verbose that it becomes difficult to maintain them. Technical documentation
has become important within such organizations as the basic and
advanced level of information may change over a period of time with
architecture changes. Hence, technical documentation has gained lot of
importance in recent times, especially in the software field.
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 3/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
User documentation
Unlike code documents, user documents are usually far more diverse with
respect to the source code of the program, and instead simply describe
how it is used. Typically, the user documentation describes each feature of
the program, and assists the user in realizing these features. A good user document can also go so far as to provide
thoroughtroubleshooting assistance. It is very important for user documents
to not be confusing, and for them to be up to date. User documents need
not be organized in any particular way, but it is very important for them to
have a thorough index Marketing documentation
For many applications it is necessary to have some promotional materialsto encourage casual observers to spend more time learning about theproduct. This form of documentation has three purposes:-
1. To excite the potential user about the product and instill in them adesire for becoming more involved with it.
2. To inform them about what exactly the product does, so that their expectations are in line with what they will be receiving.
3. To explain the position of this product with respect to other alternatives.
One good marketing technique is to provide clear and memorablecatch phrases that exemplify the point we wish to convey, and also emphasizethe interoperability of the program with anything else provided by themanufacturer.
2. SOFTWARE REQUIREMENTS
The Software Requirements Knowledge Area (KA) is concernedwith the elicitation, analysis, specification, and validation of
software requirements. It is widely acknowledged within the
software industry that software engineering projects are critically
vulnerable when these activities are performed poorly.
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 4/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
Software requirements express the needs and constraints placed
on a software product that contribute to the solution of some
real-world problem. [Kot00]
The term "requirements engineering" is widely used in the field to
denote the systematic handling of requirements. For reasons of consistency, though, this term will not be used in the Guide, as it
has been decided that the use of the term "engineering" for
activities other than software engineering ones is to be avoided in
this edition of the Guide.
R equirements Specification
For most engineering professions, the term "specification" refers to the
assignment of numerical values or limits to a product's design goals. (Vin90)Typical physical systems have a relatively small number of such values.
Typical software has a large number of requirements, and the emphasis is
shared between performing the numerical quantification and managing the
complexity of interaction among the large number of requirements. So, in
software engineering jargon, "software requirements specification" typically
refers to the production of a document, or its electronic equivalent, which can
be systematically reviewed, evaluated, and approved. For complex systems,
particularly those involving substantial non-software components, as many as
three different types of documents are produced: system definition, systemrequirements, and software requirements.
Software R equirements Specification
Software requirements specification establishes the basis for agreementbetween customers and contractors or suppliers (in market-driven projects,
these roles may be played by the marketing and development divisions) onwhat the software product is to do, as well as what it is not expected to do.
For non-technical readers, the software requirements specification documentis often accompanied by a software requirements definition document.
Software requirements specification permits a rigorous assessment of
requirements before design can begin and reduces later redesign. It should
also provide a realistic basis for estimating product costs, risks, andschedules.
Organizations can also use a software requirements specification document
to develop their own validation and verification plans more productively.
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 5/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
Software requirements specification provides an informed basis for
transferring a software product to new users or new machines. Finally, it can
provide a basis for software enhancement.
Software requirements are often written in natural language, but, in
software requirements specification, this may be supplemented by formal orsemi-formal descriptions. Selection of appropriate notations permits
particular requirements and aspects of the software architecture to bedescribed more precisely and concisely than natural language. The general
rule is that notations should be used which allow the requirements to be
described as precisely as possible. This is particularly crucial for safety-
critical and certain other types of dependable software. However, the choiceof notation is often constrained by the training, skills and preferences of the
document's authors and readers.
What is Software Development Life Cycle?
The Software Development Life Cycle is a step-by-step process involved inthe development of a software product. It is also denoted as SoftwareDevelopment process in certain parts of the world. The whole process is
generally classified into a set of steps and a specific operation will be carried
out in each of the steps.
Classification The basic classification of the whole process is as follows
y Planning
y Analysisy Design
y Developmenty Implementation
y Testing
y Deployment
y Maintenance
Each of the steps of the process has its own importance and plays a
significant part in the product development. The description of each of thesteps can give a better understanding.
Planning This is the first and foremost stage in the development and one of the mostimportant stages. The basic motive is to plan the total project and toestimate the merits and demerits of the project. The Planning phase includes
the definition of the intended system, development of the project plan, and
Parallel management of the plan throughout the proceedings of the
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 6/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
development.
A good and matured plan can create a very good initiative and can positivelyaffect the complete project.
Analysis The main aim of the analysis phase is to perform statistics and requirementsgathering. Based on the analysis of the project and due to the influence of
the results of the planning phase, the requirements for the project are
decided and gathered.
Once the requirements for the project are gathered, they are prioritized andmade ready for further use. The decisions taken in the analysis phase are
out-and-out due to the requirements analysis. Proceedings after the current
phase are defined.
Design
Once the analysis is over, the design phase begins. The aim is to create the
architecture of the total system. This is one of the important stages of the
process and serves to be a benchmark stage since the errors performed untilthis stage and during this stage can be cleared here.
Most of the developers have the habit of developing a prototype of the entire
software and represent the software as a miniature model. The flaws, bothtechnical and design, can be found and removed and the entire process can
be redesigned.
Development and Implementation The development and implementation phase is the most important phasesince it is the phase where the main part of the project is done. The basic
works include the design of the basic technical architecture and the
maintenance of the database records and programs related to the
development process.
One of the main scenarios is the implementation of the prototype model into
a full-fledged working environment, which is the final product or software.
Testing
The testing phase is one of the final stages of the development process and
this is the phase where the final adjustments are made before presenting
the completely developed software to the end-user.
In general, the testers encounter the problem of removing the logical errors
and bugs. The test conditions which are decided in the analysis phase are
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 7/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
applied to the system and if the output obtained is equal to the intended
output, it means that the software is ready to be provided to the user.
Maintenance
The toughest job is encountered in the maintenance phase which normally
accounts for the highest amount of money. The maintenance team isdecided such that they monitor on the change in organization of thesoftware and report to the developers, in case a need arises.
Testing MethodologiesSoftware testing is a process consisting of all life cycle activities, both static
and dynamic, concerned with planning, preparation and evaluation of software products and related work products to determine, that they satisfy
specified requirements, to demonstrate that they are fit for purpose and to
detect defects.
Types of Software Testing Methodologies
Different types of types of software testing are used to assess completeness,correctness and quality of the software developed. The entire process of
software testing is carried out on behalf of the end clients. The software
testing types are mentioned below. It is important to note that all the
methodologies used for testing a software fall under either one of thefollowing methodologies.
White Box Testing
The white box testing strategy is also known as 'structural testing' or 'glassbox testing'. In this type of testing, the tester has an internal view of thesoftware. The aim of the tester is to know the exact functioning inside the
box, i.e. internal structure of the software is tested. This methodology helps
in identifying thoroughness of testing by covering the structural elements or
coverage items. White box testing is often used for component andintegration level of testing. In rare cases, it is used to test at higher levels.
White box testing may be used for higher levels, when business process
testing has to be carried out. While performing white box testing, the tester
uses different types of inputs to test different paths in the code anddetermine the appropriate output. This software testing methodology makesuse of techniques like control flow testing, data flow testing, branch testingand path testing. The methods used in this methodology are as follows:
y Unit Testingy Static Testing
y Code Coveragey Error Guessing
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 8/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
y Integration Testing (carried out by the developer himself)
Unit Testing: This type of testing is done at the developer's site to check whethera particular piece/unit of code is working fine. Unit testing deals with testing the
unit as a whole.
Integration Testing: Integration testing is performed when various modules areintegrated with each other to form a sub-system or a system. This mostly focuses
in the design and construction of the software architecture. Integration testing isfurther classified into Bottom-Up Integration and Top-Down Integration testing.
Security Testing: Testing that confirms, how well a system protects itself againstunauthorized internal or external, or willful damage of code, means security testing
of the system. Security testing assures that the program is accessed by theauthorized personnel only.
System Testing: System testing is the testing conducted on a complete,integrated system, to evaluate the system's compliance with the specifiedrequirements. This type of software testing validates that the system meets its
functional and non-functional requirements and is also intended to test beyond the
bounds defined in the software/hardware requirement specifications.
Black Box Testing
In black box testing strategy, the tester only has an external view of the
software. It is used to check both functional as well as non-functional
aspects of the software. While these aspects have been checked, there is no
reference made to the internal structure of the software. While writing thetest cases, knowledge of specifications, requirements and design isnecessary. Often functional or non-functional tests can be written using this
methodology, however, more often functional tests are written. Both valid
inputs and invalid inputs are used when this testing methodology is used.
The different types of techniques used in this testing methodology aredecision tables, state transition tables, equivalence partitioning, boundary
value analysis, etc. The methods used in this methodology include: y Integration Testing (carried out by a tester)y Functional Testing
y Performance Testingy Load Testingy Stress Testing
y Exploratory Testing
y Usability Testing
y Reliability Testingy Ad-Hoc Testing
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 9/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
y Smoke Testing
y System Testing
y End to End Testingy Compatibility Testing
y Security Testing
y Regression Testingy Validation Testingy Acceptance Testing
y Alpha Testing
y Beta Testing
Gray Box Testing
This type of testing requires knowledge of the internal data structures and
algorithms used. Using this knowledge the test cases are designed.However, testing of the software is similar to that of black box testing. Gray
box testing comes prominently into use when two different modules written
by different developers are being tested. In such a test, only the interfaces
of the modules are exposed to the testers. At this stage it is important tonote that if the data repository is modified, then the test is classified under
gray box testing. This methodology is often also used for reverseengineering, using which boundary value analysis, error messages, etc. are
tested.
Importance of CASE Tools
Computer Assisted Software Engineering or CASE tools are designed to
enhance programs that aid the development cycle of the system. The tools
assist software engineers and dedicated programmers through preliminaryinvestigation and system analysis...
Computer Assisted Software Engineering is an application that is directed
towards the enhancement of any computing machine. The process is a
quality driven step towards improvisation of design and installation featuresfor software development. Whenever a new system is installed, the
implementation integrates a number of related and different tasks. The
process has to be efficiently organized and it is for this very reason thatCASE tools are developed. With the help of CASE, the installation process
can be automated and coordinated within the developed and adopted systemlife cycle.
CASE tools are largely marketed and understood as: 1. Investigation, analysis and design, or Front-End CASE
2. Implementation and installation, or Back-End CASE
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 10/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
CASE tools are developed for the following reasons: y Increase the speed during system development.y Quicker installation.
y Enhanced analysis and design development.
y Reduced coding and testing time.y Efficient transfer of information between tools.
y Optimum use of available information.
y Create and manipulate documentation.
y Enrich graphical techniques and data flow.
The use of CASE tools enables the programmer to process diagrams andimprovise project management software designs. The implementation makesit possible to access data dictionaries and specialist packages. With
enhanced features, it is possible to edit and update multiple design versions
to add quality to the adopted version. The timely use of the powerfuldevelopment tools to complete and upgrade cycle documents helps a great
deal in error checks and test case generation. CASE tools have progressed
from applications that aid documentation analysis on the computer to
intelligent user interfaces that are reusable.
TYPES OF CASE TOOLS
Classic CASE tools - established software development support tools (e.g. interactive
debuggers, compilers, etc.)
Real CASE tools - can be separated into three different categories, depending on where in thedevelopment process they are most involved in:
y Upper - support analysis and design phases
y Lower - support coding phase
y Integrated - also known as I-CASE support analysis, design and coding phases
Upper and lower CASE tools are named as such because of where the phases they support are in the
Waterfall Model (see below)
Software Generations
First Generation
During the 1950's the first computers were programmed by changing the
wires and set tens of dials and switches. One for every bit sometimes these
settings could be stored on paper tapes that looked like a ticker tape from
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 11/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
the telegraph - a punch tape - or punched card. With these tapes and or
cards the machine was told what, how and when to do something.
To have a flawless program a programmer needed to have a very detailed
knowledge of the computer where he or she worked on. A small mistake
caused the computer to crash.
Second Generation
Because the first generation "languages" were regarded as very user
unfriendly people set out to look for something else, faster and easier to
understand.
The result was the birth of the second generation languages (2GL) at themid of the 1950's
These generation made use of symbols and are called assemblers.
An assembler is a program that translates symbolic instructions to
processor instructions. (See above for an example) But deep in the 1950's
there was still not a single processor but a whole assembly rack with
umpteen tubes and or relays.
A programmer did no longer have to work with one's and zero's when
using an assembly language. He or she can use symbols instead. These
symbols are called mnemonics because of the mnemonic character these
symbols had (STO = store). Each mnemonic stands for one single machine
instruction.
But an assembler still works on a very low level with the machine. For each
processor a different assembler was written.
Third Generation
At the end of the 1950's the 'natural language' interpreters and compilers
were made. But it took some time before the new languages were accepted
by enterprises.
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 12/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
About the oldest 3GL is FORTRAN (Formula Translation) which was
developed around 1953 by IBM. This is a language primarily intended for
technical and scientific purposes. Standardization of FORTRAN started 10
years later, and a recommendation was finally published by the
International Standardization Organization (ISO) in 1968.
FORTRAN 77 is now standardized
COBOL (= Common Business Oriented Language) was developed around
1959 and is like its name says primarily used, up till now, in the business
world.
With a 3GL there was no longer a need to work in symbolics. Instead aprogrammer could use a programming language what resembled more to
natural language. Be it a stripped version with some two or three hundred
'reserved' words. This is the period (1970's) were the now well known so
called 'high level' languages like BASIC, PASCAL, ALGOL, FORTRAN, PL/I,
and C have been born.
Fourth Generation
A 4GL is an aid witch the end user or programmer can use to build an
application without using a third generation programming language.
Therefore knowledge of a programming language is strictly spoken not
needed.
The primary feature is that you do not indicate HOW a computer must
perform a task but WHAT it must do. In other words the assignments can
be given on a higher functional level.
A few instructions in a 4GL will do the same as hundreds of instructions in a
lower generation language like COBOL or BASIC. Applications of 4GL's are
concentrating on the daily performed tasks such like screen forms, requests
for data, change data, and making hard copies. In most of these cases one
deals with Data Base Management Systems (DBMS).
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 13/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
The main advantage of this kind of languages is that a trained user can
create an application in a much shorter time for development and
debugging than would be possible with older generation programming
language. Also a customer can be involved earlier in the project and can
actively take part in the development of a system, by means of simulation
runs, long before the application is actually finished.
Today the disadvantage of a 4GL lays more in the technological capacities
of hardware. Since programs written in a 4GL are quite a bit larger they are
needing more disk space and demanding a larger part of the computer's
memory capacity than 3GL's. But hardware of technologically high standard
is made more available every day, not necessarily cheaper, so in the long
run restrictions will disappear.
Considering the arguments one can say that the costs saved in
development could now be invested in hardware of higher performance and
stimulate the development of the 4GL's.
In the 1990's the expectations of a 4GL language are too high. And the use
of it only will be picked up by Oracle and SUN that have enough power to
pull it through. However in most cases the 4GL environment is oftenmisused as a documentation tool and a version control implement. In very
few cases the use of such programs are increasing productivity. In most
cases they only are used to lay the basis for information systems. And
programmers use all kinds of libraries and toolkits to give the product its
final form.
System Analysis ± Methods of Investigation
Systems analysis is a crucial stage in the systems development life cycle.The development process of information technology systems or ICT systems is often
described as the system development life cycle. This cycle includes all the stages
involved in planning, investigating, development, implementation and maintenance of
computer-based information systems.
System Analysis is that part of the development life cycle of a system, which involves the
process of investigatingcurrent or new systems. It also
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 14/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
involves analyzing and understanding the needs of users. Various methods are used for
investigation and gathering of data and information. This job is usually carried out by
the system analyst.
Methods of InvestigationThe main methods used to carry out the investigations of a system are:
y Observationy Interviewy Document Analysisy Questionnaire
Observation This method involves examining procedures as they are carried out. The analystobserves how work and procedures are carried out with the existing system, and this
enables the analyst to witness first hand how the work is actually done and what itinvolves.
Interview Interviewing is a face-to-face method used to gather facts directly from the users of thesystem under investigation. The interviewer will ask some specific questions in order toget useful information from the interviewee.
Document Analysis The document analysis method involves examining existing data, records,documentations as well as proceduremanuals used for the existing system.
This method enables the analyst to obtain realistic and actual information about thesystem.
Questionnaire The questionnaire consists of a standard set of questions. This may be distributedelectronically ± by email or via anetwork. It may also be paper based, in which case, itmay be distributed to users by post.
The questionnaire would normally include different types of questions. For instance,open and close ended questions.This technique is used to ask identical questions from the people using the system and
perhaps when the information needed is not large, and there is a need tocollect information from a large number of users.
SystemA set of detailed methods, procedures, and routinesestablished orformulated to carry out a specific activity, perform a duty, or solve
a problem.
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 15/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
All systems have (a) inputs, outputs, and feedbackmechanisms, (b) maintain
an internal steady-state (calledhomeostasis) despite a changing external
environment, (c) display properties that are peculiar to the whole(calledemergent properties) but are not possessed by any of
theindividual elements, and (d) have boundaries that are usually defined by
the system observer.
INFORMATION SYSTEM
Information System is a combination of people, hardware, software,
communication devices, network and data resources that processes (can be
storing, retrieving, transforming information) data and information for a
specific purpose. The operation theory is just similar to any other system,
which needs inputs from user (key in instructions and commands, typing,
scanning). The inputted data then will be processed (calculating, reporting)using technology devices such as computers, and produce output (printing
reports, displaying results) that will be sent to another user or other system
via a network and a feedback method that controls the operation. The
picture below shows the procedure of Information System when it works.
Components
It consists of computers, instructions, stored facts, people and procedures.
ISs can be categorized in four parts:
1. Management Information System (MIS)
2. Decision Support System (DSS)
3. Executive Information System (EIS)
4. Transaction Processing System (TPS)
Data Abstr action
data abstraction is a process of representing the essential
features without including implementation details.
The basic idea of data abstraction is to structure the programs that are to usecompound data objects so that they operate on ``abstract data.'' That is, our programs
should use data in such a way as to make no assumptions about the data that are not
strictly necessary for performing the task at hand. At the same time, a ``concrete'' data
representation is defined independent of the programs that use the data. The interface
between these two parts of our system will be a set of procedures,
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 16/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
called selectors and constructors, that implement the abstract data in terms of the
concrete representation. To illustrate this technique, we will consider how to design a
set of procedures for manipulating rational numbers.
R ole of a software engineer
A software engineer is a person who builds or designs software.
A software engineer must, of course, be a good programmer, be well versed
in data structures and algorithms, and be fluent in one or more
programming languages.
Software Verification & ValidationModel
What is Verification
The standard definition of verification goes like this: "Are we building the product
RIGHT?" i.e., Verification is a process that makes it sure that the software product
is developed in the right way. The software should confirm to its predefined
specifications. As the product development goes through different stages, an
analysis is done to ensure that all required specifications are met.
Methods and techniques used in the verification and validation shall be designed
carefully, the planning of which starts right from the beginning of the development
process. The verification part of 'Verification and Validation Model' comes before
validation, which incorporates software inspections, reviews, audits, walkthroughs,
buddy checks, etc. in each phase of verification (every phase of verification is a
phase of the testing life cycle).
During the verification, the work product (the ready part of the software being
developed and various documentations) is reviewed/examined personally by one or
more persons in order to find and point out the defects in it. This process helps inprevention of potential bugs, which may cause failure of the project.
What is Validation
Validation is a process of finding out if the product being built is right? That is,
whatever software product is being developed, it should do what the user expects it
to do. The software product should functionally do what it is supposed to, it should
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 17/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
satisfy all the functional requirements set by the user. Validation is done during or
at the end of the development process in order to determine whether the product
satisfies specified requirements.
Validation and verification processes go hand in hand, but visibly validation process
starts after verification process ends (after coding of the product ends). Each
verification activity (such as requirement specification verification, functional design
verification, etc.) has its corresponding validation activity (such as functional
validation/testing, code validation/testing, system/integration validation, etc.).
All types of testing methods are basically carried out during the validation process.
Test plan, test suits and test cases are developed, which are used during the
various phases of validation process. The phases involved in validation process are:
Code Validation/Testing, Integration Validation/Integration Testing, Functional
Validation/Functional Testing, and System/User Acceptance Testing/Validation.
Prototyping
Prototyping is a method used by designers to acquire feedback from users about future
designs. Prototypes are similar to mock-ups (see this), but are usually not as low-fidelity
as mock-ups and appear slightly later in the design process.
The advantages of prototypesy Prototypes comply with the wish to show fast results to the clienty Prototypes have the advantage of 'grounding' the discussion during a user
session, making the sure the session does not get too much off track.y Not only can the prototype function as a discussion medium between designer
and user but also between the members of the design team. Thus, prototypes may help facilitate work across disciplinary borders, bringing together a disparateteam.
y Prototypes make it possible to do usability testing early in the developmentprocess.
y Prototypes incite and legalise experimentation as they are inexpensive to alter.y Prototypes focus on content and functionality and turn attention away from
details of graphic design.y Prototypes make it possible to get a formal approval of the design from both
programmers and the client before you proceed to the development stage
Software crisis
Software crisis is the term used in early days of computing science.[1] Theterm was used to describe the impact of rapid increases in computerpower and the complexity of the problems that could be tackled. In
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 18/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011
essence, it refers to the difficulty of writing correct, understandable,and verifiable computer programs. The roots of the software crisis arecomplexity, expectations, and change.The term "software crisis" was coined by some attendees at the first
NATO Software Engineering Conference in 1968 at Garmisch, Germany.
[
DIFFERENCE BETWEEN S/W ENGINEER AND PROGRAMMER
"Software" is categorized as 'property' in business industry. In samemanner, building software is like building a building. having a programmer build a software, is like hiring general contractor builder to build your houserather than architect & engineer. He(builder) could do it.
A software developer engineer architect designs the software they tell the
programmer what they want the software to do and the programmer writesthe program in computer language (which is done in binery code) so thecomputer knows how to handle the software program.
8/2/2019 Software Engineering University of Lucknow
http://slidepdf.com/reader/full/software-engineering-university-of-lucknow 19/19
Contact me : [email protected] Department of Computer Science UNIVERSITY OF LUCKNOW
MD TARIQUE JAMAL ANSARI BCA 5TH
SEM 07/12/2011