software engineering university of lucknow

19
Contact me : [email protected]  Department of Computer Science UNIVERSITY OF LUCKNOW MD TARIQUE JAMAL ANSARI BCA 5 TH 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 as requirements 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, capa bilities, 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 rela tions to an environment 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 and support staff. 5. Marketing - How to market the product and analysis of the market demand. Requirements documentation Requirements documentation is the description of what a particular software does or shall do. It is used throughout development to communicate what the software does or shall d o. 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

Upload: md-tarique-ansari

Post on 06-Apr-2018

224 views

Category:

Documents


0 download

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