Sie sind auf Seite 1von 15

Software Engineering

Unit 1

Unit 1

The Product and The Process

Structure: 1.1 Introduction Objectives 1.2 The Product The Evolving Role of Software Software Software Characteristics Software Applications Software: A Crisis on the Horizon Software Myths 1.3 The Process The Software Process Software Process Models The Linear Sequential Model The Prototyping Model The Incremental Model The Spiral Model The RAD Model 1.4 Fourth Generation Techniques 1.5 Summary 1.6 Terminal Question(s) (TQs) 1.7 Multiple Choice Question(s) (MCQs) 1.8 Answers to SAQs, TQs, and MCQs

1.1 Introduction
The world today is growing at a very fast pace. Most of the activities related to business and various applications are computerized. Computerization has led to the development of various types of software. Software has become the basis for various decision-making. Software helps in solving day to day problems and also helps in systematic production. It has become an integral part of service industry today. Software has penetrated various other sectors in applications of forecasting, scientific applications, animation, film making, inventory etc. Software has greatly impacted our society and culture. Its significance has no bounds and has led to rapid development of
Sikkim Manipal University Page No.: 1

Software Engineering

Unit 1

technologies across the globe. This has also created a competition amongst various companies. The thirst for developing better and better software continues to increase day by day. There is also a need to develop areas of importance like hospitals, crime detection, chemical lab tests, astronomic research etc where quality is of prime importance. Software enables one to have a quality system. The technologies aim at specific applications like Web-Site development, technology domain like object-oriented systems, artificial intelligence, expert systems etc. There is not one software which can do everything. Software is an embodied knowledge and is a social learning process. It is a dialogue in which the knowledge becomes the software. This has resulted in processes, which provides an interaction between users and designers, and between designers and evolving technology. It is repetitive in nature, where the tool itself serves as the medium for communication. It is enriched with more and more rounds of the interaction where plenty of useful knowledge from the people is involved. Objectives In this Unit you will learn about: What is computer software . . . really? Why do we struggle to build high-quality computer-based systems? How can we categorize application domains for computer software? What myths about software still exist? What is a software process? Is there a generic way to assess the quality of a process? What process models can be applied to software development? How do linear and iterative process models differ? What are their strengths and weaknesses? What advanced process models have been proposed for Software Engineering work?

1.2 The Product


1.2.1 Software Evolutionary Role Software has a dual role. First it acts as a product, and secondly it acts as a delivery model. It provides the facility of computing the various needs of computer hardware like network of computers to be made accessible by
Sikkim Manipal University Page No.: 2

Software Engineering

Unit 1

local hardware. A software acts as an information transformer. It transforms one or more of production, management, acquisition, modification, displaying, or transmitting information in simple as a single bit. Software is the basis and a driver to deliver the product. It acts as a controller of the ther entire systems of communication of information. Transformation of data is done by software. By transformation data becomes information which is then more useful in various contexts of business and scientific application. It helps in enhancing competitiveness; providing gateway to worldwide information networks, and as a means to acquire information. Along with the growth of the software industry there has been a drastic growth in the development of new hardware components and devices. Self Assessment Question(s) (SAQs) 1. Today software takes on a ______________ role. 2. Software helps in transferring personal information. (T/F) 1.2.2 Software A software refers to instructions which when executed provide desired function and performance and data structures that enable the programs to adequately manipulate information, and documents describing the operation and the use of the software. It refers to a set of instructions also known as program. Self Assessment Question(s) (SAQs) 1. What is software? 1.2.3 Characteristics of a Software Software is a logical element. Software has the following characteristics: 1. Software is not a manufactured component but it is developed or engineered. 2. Software does not undergo wear out which is seen in many manufactured components. 3. Most of softwares today are custom built which means the software are customized to meet the user needs. It is developed keeping in mind the requirements of delivery process and finished product. Self Assessment Question(s) (SAQs) 1. What are the characteristics of software?

Sikkim Manipal University

Page No.: 3

Software Engineering

Unit 1

1.2.4 Software Applications The application of software is based on the nature of instructions in a particular area. If the set of instructions are structured well it is appropriate to develop software for such application. Development becomes easy and convenient depending on the degree of structure. Higher the degree better it is to develop the software for such applications. Information content and determinacy play an important role in determining the nature of a software application. Content means the form of incoming and outgoing information. Information determinacy refers to the predictions of the order and timing of information. It is difficult to develop generic categories for software applications. The following software areas indicate potential applications: System software - It is a collection of programs written to serve other programs. e.g., Compilers and Interpreter. Other systems applications like the operating system components, drivers, telecommunication processors process largely indeterminate data. Real-time software: Events that are real world based if possible to be controlled by programs are referred to as programmable events. Such programs control the entire event and act as a monitor or as an analyzer of the real-world events. Such software are known as real time software. It includes data gathering components and formats information from an external environment, an analysis component that transforms information, a responder component that responds to the changes in the external environment, and a monitoring component coordinating all other components. Business software: Business software refers to applications in the areas of business. Such software is mainly useful in decision making and transactions that facilitates business operations or management decision making. In addition to conventional data processing applications, business software applications also encompass interactive computing. Engineering and scientific software: Engineering and scientific software have been developed mainly to deal with "number crunching" algorithms. Applications range from astronomical science to seismology to molecular biology to automated manufacturing. Computer-aided design, system simulation, and other interactive applications have gained prominence.
Sikkim Manipal University Page No.: 4

Software Engineering

Unit 1

Personal software: The personal computer software like the word processing, spreadsheets, computer graphics, multimedia, entertainment, database management, personal and business financial applications, external network, and database access are some of the applications. Web-based software: The Web pages are a software application page that incorporates executable instructions performing one or more tasks. Artificial intelligence software: It uses non-numerical algorithms to solve complex problems. Expert systems, also called knowledge based systems, pattern recognition, artificial neural networks, and game playing are representative of applications within this category. Self Assessment Question(s) (SAQs) 1. What do you mean by Web-based software? 2. Write on personal computer software. 1.2.5 Software Crisis The success rate of software people is high. Last two to three decades never one has seen a serious software crisis. A crisis may indicate either a downfall of a set and well established activity or activities of software. It may signify a change in the software which is considered healthy for the growth of the software and its improvement. The set of problems that are encountered in the development of computer software is not limited to software that malfunctions. Rather, it may be extended to the stages of the development of the software. Also it is based on how we support a growing volume of existing software, and how one can keep pace with a growing demand in the industry. In the other hand we can say that, the selection of the software from total market availability is the software crisis. Self Assessment Question(s) (SAQs) 1. What do you mean by crisis?

1.2.6 Myths about Software


Most of the knowledgeable professionals understand myths as misleading attitudes that have caused serious problems for managers and technical people. It is not possible to easily change the old attitudes and habits. Myth about Management - Managers are often under pressure to maintain budgets, work towards objectives and accomplish task within deadline, keep control schedules from slipping, and improve quality.
Sikkim Manipal University Page No.: 5

Software Engineering

Unit 1

Myth: A book that's full of standards and procedures for developing software is available. Is that enough to provide people with everything they need to know? Reality: The question is whether the book of standards was ever used or not? Are managers aware of the availability of such codes? Is it complete? Is it streamlined? Most of the times, the answer to all of these questions is "no." Self Assessment Question(s) (SAQs) 1. What do you mean by myths? 2. What are the different types of myths?

1.3 The Process


1.3.1 The Software Process A lot of focus is on process maturity. Software Engineering Institute (SEI) based on a software engineering capabilities, have developed a model, to address the various levels of maturity levels present in an organization. SEI used a five point grading scheme to assess the maturity level. The five levels are as follows Level 1: Initial level It is to address the initial processes where there is a tendency of one or more processes getting chaotic. Some of the issues are identified and steps are taken to bring in clarity in the initial processes. Level 2: Repeat level Based on the successes of certain processes in the past, processes are reviewed and revised. Some of the processes which are tracked are the process on costing, scheduling and various other related functions. Level 3: Documentation Organizations follow a streamed line of software development activities. These activities are documented procedures developed over years which are used by both the management and development team. Modules developed are integrated into existing organization software processes. Level 4: Managing the processes - It is necessary to measure various product features and processes associated with the software process. Measures are taken to collect data from various processes on various parameter of the software and each one is measured. The quantification of
Sikkim Manipal University Page No.: 6

Software Engineering

Unit 1

all such measures is done and used in the performance evaluation of the process and the product. Level 5: Optimization Continual improvement is one of the major objectives of organization today. It is achieved by means of some predefined characteristics which is expected from the processes. The measurement methodology can be different for different processes. A quantitative feedback is obtained for various processes and measured. The measurements are made under constraints under which a process is expected to perform. Hence the measurements have to be optimized measurements. This helps in taking decisions on the improvement of the process on a continual basis. The five levels defined by SEI are on the basis of the evaluation responses from the assessment questionnaire based on CMM. Associated with each process level is the key process area (KPA). It defines various functions associated with each process which reflect the qualitative aspect of the process. KPA is based on the following characteristics Goals goals refer to the overall objectives to be achieved Commitments commitments are the requirements to be adhered to meet the goals. Abilities abilities refer to those aspects necessary to meet the commitments. Activities it signifies task necessary to achieve a particular KPA. Monitoring it refers to the ways and methodologies of monitoring a particular activity or a process. Verification it refers to the ways of verifying the methodologies of the KPA Self Assessment Question(s) (SAQs) 1. What are the different CMM Levels? 1.3.2 Software Process Models A development strategy for each process has to be developed to solve various types of problems associated with a process.

Sikkim Manipal University

Page No.: 7

Software Engineering

Unit 1

Problem solving can become very troublesome if not attempted to solve properly. It may run into repeated process of corrections and trouble shooting. The stages normally encountered are: status quo, problem definition, technical development, and solution integration. These stages are represented in the figure 1.1. Current state is represented by Status quo; identifying specific problem needed to be solved is problem definition; technical development refers to application of technology to solve the problem; and solution integration gives results. This technique may be applied at macro level or at micro level of processes. The stages may also exist in the form of nesting one consisting of the other similar block of stages.

Status Quo

Technical Development

Integrating Solution

Problem Definition

Fig. 1.1: Stages of problem solving in software process model

Self Assessment Question(s) (SAQs) 1. Software process model is used as ________________ level.

Sikkim Manipal University

Page No.: 8

Software Engineering

Unit 1

1.3.3 Linear Sequential Model Linear Sequential Model is also known as the waterfall model. It indicates a systematic and sequential approach to software development. It encompasses the following in a sequential order modeling, analysis, design, coding, testing, and support. Modeling: Modeling is done based on the various characteristics and relevant parameters which affect the performance of the software. The requirements are identified for each system element and the related constraints. The view of the system indicating the interaction of various elements of the system helps in modeling the system. The elements are the hardware, people, and databases. Requirements analysis: The information domain is understood for the software and the related functions and behavior of the various elements. The requirements for software are well documented. The requirements are reviewed for time to time with the customer. Design: The design of software is based on the following steps understanding data structure, the software architecture, the interface representations, and algorithms. The process of design transforms the requirements into a representation of the software which is then assessed for quality. Code generation: The code generation refers to the translation of design into a machine code. Code generation can be done systematically if the design steps are listed in detail. Program Testing: After the development of the program it is subjected to testing. Testing is done on the logics of the program and the functionality. During the process of testing, errors if any are identified and then necessary steps are taken to rectify the error. Support: Customers who are the end users of the software may come across certain points while using the software for their business applications. Such points are communicated to the developer who in turn incorporates the changes in the software. This is recorded as a revision. Software goes through a number of revisions during its lifetime of service.

Sikkim Manipal University

Page No.: 9

Software Engineering

Unit 1

Self Assessment Question(s) (SAQs) 1. What do you mean by linear sequential model? 2. What are the features of sequential model? 1.3.4 The Prototyping Model Detailed input requirements, processing requirements, and output requirements are not identified easily by the customer but states the general objectives. Also there is always a doubt about the efficiency of an algorithm. A prototype model on the requirements stated by the customer is developed which will enable the developer to understand the requirements more clearly and implement those requirements in the system. The customer evaluates the prototype which becomes the basis to refine the requirements. Self Assessment Question(s) (SAQs) 1. The prototyping paradigm begins with ____________ gathering. 2. What are the features of the prototyping model? 1.3.5 The Incremental Model The incremental model has the elements of linear sequential model and the prototype model. While using the incremental model, it is observed that the first increment is a core product. A basic requirement is addressed, but many of the supplementary features are undelivered. Core product is used by customer , who in turn suggests he changes which is reflected as in increment. This is repeated, till such a time that the entire product is completely finished for its intended use. Incremental model focuses on the delivery. This methodology is very useful in situation when there is shortage of staff but a progress is required. An incremental progress is possible then with limited staff. It can be then developed further depending upon the acceptance of the product by the customer and can be very useful in handling technical risks. Self Assessment Question(s) (SAQs) 1. The incremental model combines elements of the __________________ model. 1.3.6 The Spiral Model The spiral model was proposed by Boehm. It combines the repetitive aspect of prototyping and systematic and controlled aspect of linear sequential model. It helps in rapid development of versions of the software through
Sikkim Manipal University Page No.: 10

Software Engineering

Unit 1

various incremental forms. Early iterations of the incremental release might be a paper model or prototype. Iterations done later are more in complete versions form. A spiral model is divided into six task regions: Customer Communication it refers to the setting up of a communication channel between the developer and the customer. Planning Resources and other project-related information are organized in a definite manner to achieve the intended results within the timeframe is achieved through planning. Risk Analysis Risks related to technical and management are analysed. Engineering engineering refers to the set of tasks necessary to build one or more application forms. Construction and Release This refers to the tasks required to construct, test, install, and provide user support. Customer Evaluation Various feedback question types are prepared on the different types of processes of the system. The feedbacks are inputs to the data on the software from the customers. The feedbacks are evaluated which in turns determines the level of acceptance of the software by the customer. The system of feedback is a repetitive process aimed at continual improvement of the product and its services. The software team moves around the spiral in a clockwise direction, beginning at the center leading to the development of product specification and subsequent repetitions of the process leads to development of the prototype and hence the product. Each pass through the planning region results in improvements. Cost and schedule are adjusted depending upon the customer needs. The new product will evolve over iterations around the spiral. The spiral model is a realistic approach to develop large-scale systems and software. The spiral model demands attention of the risks involved at various stages of the project and tend to minimize such risks. Self Assessment Question(s) (SAQs) 1. ___________ provides the potential for incremental versions of the software. 2. What are the features of the spiral model? rapid development of

Sikkim Manipal University

Page No.: 11

Software Engineering

Unit 1

1.3.7 The RAD Model Rapid application development (RAD) is similar to incremental software development process model. It focuses on short development cycle. The model is constructed based on the components or rapid development form linear sequential model. RAD approach covers the phases listed below: Business modeling phase in this phase the flow of the information through various business functions is considered. Certain questions to generate the model would be on - What drives the business process? What is generated? Who has generated it? Who is responsible to processes it? Data modeling phase Business data objects are modeled based on the information flow and the functionality of the business module which is needed to be incorporated into the system. Process modeling phase The objects developed in the above phase are transformed into the form necessary to be implemented in the systems as a function of the business. This will enable the smooth flow of the information through the various business processes. Processes are described to add, modify, delete, retrieve objects. Application generation phase - RAD uses fourth generation techniques for creating software. The focus of RAD process is to reuse existing program components. Automated tools may be used to develop the software. Testing and turnover phase The overall testing time is reduced in RAD since it emphasizes on the reusability of the components. In case of new components, testing will have to be done. In case the projects are large and scalable, RAD requires sufficient human resources to form the right team. Developers and customers are needed to the rapid-fire activities necessary to get a system complete. RAD is not appropriate to all types of business applications. RAD becomes troublesome if the if a system cannot be properly modularized. If the technical risks are high then RAD is not appropriate. Self Assessment Question(s) (SAQs) 1. What is the full form of RAD? 2. What is the drawback of the RAD model?

Sikkim Manipal University

Page No.: 12

Software Engineering

Unit 1

1.4 Fourth Generation Techniques


It refers to software tools that enable the software engineer to specify some characteristic of software at a higher level. Based on the developers specifications the tool generates the codes automatically. A software development environment that supports 4GT includes one or more of the following tools: data manipulation tools, nonprocedural languages, interactions, screen generation, code generation; high-level graphics capability; Web-site creation, etc. For applications of smaller size moving from requirements gathering step to implementation a non procedural 4GL may be used. For applications of larger size a design strategy along with the use of 4GL. 4GL is advantages in reducing the development time of the software and has a little disadvantage in it being not too simple to use. Self Assessment Question(s) (SAQs) 1. What do you mean by 4GT?

1.5 Summary
In the evolution of computer based systems, software has become the key element. Over the past few decades, software has evolved from a problem solving tool and information analysis tool to an industry in itself. Software has become a limiting factor. Software consists of programs, data, and documents. These elements comprise a configuration that is created as part of the software engineering process. The aim of software engineering is to build high quality software. Software engineering integrates processes, methods, and tools for the development of software. A number of different process models have been proposed for software engineering. Each has some strength and some weakness.

1.6 Terminal Question(s) (TQs)


1. Software is the differentiating characteristic in many computer-based products and systems. Provide examples of two or three products and at least one system in which software, not hardware, is the differentiating element. 2. Provide five examples of software development projects that would be amenable to prototyping. Name two or three applications that would be more difficult to prototype.

Sikkim Manipal University

Page No.: 13

Software Engineering

Unit 1

3. The RAD model is often tied to CASE tools. Research the literature and provide a summary of a typical CASE tool that supports RAD.

1.7 Multiple Choice Question(s) (MCQs)


1. Which model incurs more cost? (a) Prototyping model (b) RAD (c) Spiral Model (d) None of these 2. Which model is used at the time of risk? (a) Incremental model (b) Spiral model (c) Prototyping model (d) none of these.

1.8 Answers to SAQs, TQs, and MCQs


1.8.1 Answers to Self Assessment Questions (SAQs) 1.2.1 : 1. dual 2. true 1.2.2 Refer to 1.2.2 1.2.3 Refer to1.2.3 1.2.4 1. The Web pages retrieved by a browser are software that incorporates executable instructions (e.g., CGI, HTML, Perl, or Java 2. Word processing, spreadsheets, computer graphics, multimedia, entertainment, database management, personal and business financial applications 1.2.5 "the turning point in the course of a disease, when it becomes clear whether the patient will live or die 1.2.6 Refer to 1.2.6 for both question 1 and 2 1.3.1 Refer 1.3.1 1.3.2 Macro 1.3.3 1. The linear sequential model suggests a systematic, sequential approach to software development, that begins at the system level and progresses through analysis, design, coding, testing, and support. 2. Refer to 1.3.3 1.3.4 1. Requirements 2. Refer to1.3.4 1.3.5 Linear sequential
Sikkim Manipal University Page No.: 14

Software Engineering

Unit 1

1.3.6 1. 2. 1.3.7 1. 2. 1.4

Spiral model Refer to1.3.6 Rapid application development Refer to 1.3.7 The term fourth generation techniques (4GT) encompasses a broad array of software tools that have one thing in common: each enables the software engineer to specify some characteristic of software at a high level.

1.8.2 Answers to Terminal Questions (TQs) 1. Refer to section 1.2.2 2. Refer to section 1.3.4 3. Refer to section 1.3.7 1.8.3 1. a 2. b Answers to Multiple Choice Questions (MCQs)

Sikkim Manipal University

Page No.: 15

Das könnte Ihnen auch gefallen