Anda di halaman 1dari 19

Contact me : Jamal93_lu@sify.

com

Department of Computer Science UNIVERSITY OF LUCKNOW

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, 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 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 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

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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 should include 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.

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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 materials to encourage casual observers to spend more time learning about the product. This form of documentation has three purposes:1. To excite the potential user about the product and instill in them a desire 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 memorable catch phrases that exemplify the point we wish to convey, and also emphasize the interoperability of the program with anything else provided by the manufacturer.

2. SOFTWARE REQUIREMENTS
The Software Requirements Knowledge Area (KA) is concerned with 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.

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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.

Requirements 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, system requirements, and software requirements. Software Requirements Specification
Software requirements specification establishes the basis for agreement between customers and contractors or suppliers (in market-driven projects, these roles may be played by the marketing and development divisions) on what the software product is to do, as well as what it is not expected to do. For non-technical readers, the software requirements specification document is 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, and schedules. Organizations can also use a software requirements specification document to develop their own validation and verification plans more productively.
MD TARIQUE JAMAL ANSARI BCA 5TH SEM 07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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 or semi-formal descriptions. Selection of appropriate notations permits particular requirements and aspects of the software architecture to be described 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 safetycritical and certain other types of dependable software. However, the choice of 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 in the development of a software product. It is also denoted as Software Development 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 y y y y y y y

Planning Analysis Design Development Implementation Testing Deployment 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 the steps can give a better understanding. Planning This is the first and foremost stage in the development and one of the most important stages. The basic motive is to plan the total project and to estimate 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

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

development. A good and matured plan can create a very good initiative and can positively affect the complete project. Analysis The main aim of the analysis phase is to perform statistics and requirements gathering. 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 and made 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 until this 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, both technical 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 phase since 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
BCA 5TH SEM

MD TARIQUE JAMAL ANSARI

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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 is decided such that they monitor on the change in organization of the software and report to the developers, in case a need arises.

Testing Methodologies
Software 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 the following methodologies. White Box Testing The white box testing strategy is also known as 'structural testing' or 'glass box testing'. In this type of testing, the tester has an internal view of the software. 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 and integration 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 and determine the appropriate output. This software testing methodology makes use of techniques like control flow testing, data flow testing, branch testing and path testing. The methods used in this methodology are as follows:
y y y y

Unit Testing Static Testing Code Coverage Error Guessing

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

Integration Testing (carried out by the developer himself)

Unit Testing: This type of testing is done at the developer's site to check whether a 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 are integrated 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 is further classified into Bottom-Up Integration and Top-Down Integration testing. Security Testing: Testing that confirms, how well a system protects itself against unauthorized internal or external, or willful damage of code, means security testing of the system. Security testing assures that the program is accessed by the authorized personnel only. System Testing: System testing is the testing conducted on a complete, integrated system, to evaluate the system's compliance with the specified requirements. 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 the test cases, knowledge of specifications, requirements and design is necessary. 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 are decision tables, state transition tables, equivalence partitioning, boundary value analysis, etc. The methods used in this methodology include:
y y y y y y y y y

Integration Testing (carried out by a tester) Functional Testing Performance Testing Load Testing Stress Testing Exploratory Testing Usability Testing Reliability Testing Ad-Hoc Testing

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

y y y y y y y y y y

Smoke Testing System Testing End to End Testing Compatibility Testing Security Testing Regression Testing Validation Testing Acceptance Testing Alpha Testing 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 to note that if the data repository is modified, then the test is classified under gray box testing. This methodology is often also used for reverse engineering, 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 preliminary investigation 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 features for 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 that CASE tools are developed. With the help of CASE, the installation process can be automated and coordinated within the developed and adopted system life 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

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

CASE tools are developed for the following reasons:


y y y y y y y y

Increase the speed during system development. Quicker installation. Enhanced analysis and design development. Reduced coding and testing time. Efficient transfer of information between tools. Optimum use of available information. Create and manipulate documentation. Enrich graphical techniques and data flow.

The use of CASE tools enables the programmer to process diagrams and improvise project management software designs. The implementation makes it 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 powerful development 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 the development process they are most involved in:
y y y

Upper - support analysis and design phases Lower - support coding phase 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
BCA 5TH SEM

MD TARIQUE JAMAL ANSARI

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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 the mid 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.

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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 a programmer 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).
MD TARIQUE JAMAL ANSARI BCA 5TH SEM 07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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 often misused 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

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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 Investigation The main methods used to carry out the investigations of a system are:
y y y y

Observation Interview Document Analysis Questionnaire

Observation This method involves examining procedures as they are carried out. The analyst observes 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 it involves. Interview Interviewing is a face-to-face method used to gather facts directly from the users of the system under investigation. The interviewer will ask some specific questions in order to get 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 the system. Questionnaire The questionnaire consists of a standard set of questions. This may be distributed electronically by email or via anetwork. It may also be paper based, in which case, it may 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 to collect information from a large number of users.

System
A set of detailed methods, procedures, and routinesestablished or formulated to carry out a specific activity, perform a duty, or solve a problem.

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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. 2. 3. 4. Management Information System (MIS) Decision Support System (DSS) Executive Information System (EIS) Transaction Processing System (TPS)

Data Abstraction
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 use compound 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,

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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.

Role 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 & Validation Model


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 in prevention 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

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

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 prototypes


y y y

y y y y

Prototypes comply with the wish to show fast results to the client Prototypes have the advantage of 'grounding' the discussion during a user session, making the sure the session does not get too much off track. 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 disparate team. Prototypes make it possible to do usability testing early in the development process. Prototypes incite and legalise experimentation as they are inexpensive to alter. Prototypes focus on content and functionality and turn attention away from details of graphic design. 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] The term was used to describe the impact of rapid increases in computer power and the complexity of the problems that could be tackled. In
MD TARIQUE JAMAL ANSARI BCA 5TH SEM 07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

essence, it refers to the difficulty of writing correct, understandable, and verifiable computer programs. The roots of the software crisis are complexity, 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 same manner, building software is like building a building. having a programmer build a software, is like hiring general contractor builder to build your house rather 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 writes the program in computer language (which is done in binery code) so the computer knows how to handle the software program.

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Contact me : Jamal93_lu@sify.com

Department of Computer Science UNIVERSITY OF LUCKNOW

MD TARIQUE JAMAL ANSARI

BCA 5TH SEM

07/12/2011

Anda mungkin juga menyukai