0% found this document useful (0 votes)
10 views51 pages

Se Unit 1 Notes

The document provides an overview of software engineering, defining software as a collection of programs and related documents, and distinguishing between generic and custom software products. It emphasizes the importance of systematic approaches in software engineering to ensure quality, reliability, and user satisfaction while addressing common myths and the ongoing software crisis. Additionally, it outlines the software process, its components, and the layered technology that underpins effective software development.

Uploaded by

yedowek345
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
10 views51 pages

Se Unit 1 Notes

The document provides an overview of software engineering, defining software as a collection of programs and related documents, and distinguishing between generic and custom software products. It emphasizes the importance of systematic approaches in software engineering to ensure quality, reliability, and user satisfaction while addressing common myths and the ongoing software crisis. Additionally, it outlines the software process, its components, and the layered technology that underpins effective software development.

Uploaded by

yedowek345
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 51
The Software Product and Process 4.1 Introduction to Software Engineering Today, software engineering is the most important technology with rapid development. National economy is also dependant upon this technology. Day by day more and more systems are getting controlled by software. Hence it becomes necessary to understand the concept of software and software process. In this chapter we will discuss all such fundamental issues. 4.4.4 Basic Concepts 1. What is software ? (software is nothing but a collection of computer programs and related documents that are intended to provide desired features, functionalities and better performance. Software products may be = \< Generic - That means developed to be sold to a range of different customers. \Le Custom - That means developed for a single customer according to their specification. aa 2. What is software engineering 7 ‘Sofware engineering i a discipline in which theories, develop professional software product.” = In software engineering the systematic and organized approach is adopted. Based con the nature of the problem and development constraints various tools and techniques are applied in order to develop quality software. ‘The definition of software engineering is based on two terms : + Discipline : For finding the solution to the problem an Engineer applies Appropriate theories, methods and tools. While finding the solutions, Engineer must think of the organizational and financial constraints. Within these constraints only he/she has to find the solution. (1-1) ssorm 274 _sne porre rroduct and Pros Product: The software product gels developed afer following systematic they rethods and tools along with the appropriate management activites ns, 41.2 Software Components + Any software consists of three major components - programs, documents ay ‘operating procedures Programs Procedures Fig. 1.1 Software components + There isa difference between software and programs : 4) Program is one part of entire software or in other words, program is a subst of software. ) Any program consists of source code and object code. i) Thus program is an instance of software. ‘© The documentation consists of various manuals. These manuals are created at the end of each phase. Following table enlists these documents ‘© Sotware requement specticatn + Context sigram Data ow aagram, 2 | Sofware design + Flowchart, + ER diagram 3 | coding + Source code lsting, Reference lting SESPM 1:3. Tho Software Product and Process tthe Software Product and Process 4 | Testing Test data + Test cases, + Tost resus + The procedures represent instructions for the initial setup and use of software systems, It also consists of some troubleshooting instructions that «an be followed on failure of software system. These procedures can be given in the form of manuals. There are two types of manuals - i) User ‘manual and ii) Operational manual. User manual 1. System overview, To help the user to 2. Beginner's manual Urcerstan what the sytem Seoreers a is, this manual is useful, 3. Reference manual. Operational manual | 1. Installation guide, For intial setpintalation or 2. Tblestootngadminstve guide | 0" some Fouleshootng Toe ae oe ‘Purpose the operational, Iranils ae wed 1.3 Software Characteristics [answer Most likely ond previous Univers Evan qasions 1. What oe the characterises of software 2 Describe important characteristics of software process. 3. Write short note on software characteristics, DE Software development is a logical activity and therefore it is important to understand basic characteristics of software. Some important characteristics of software + Software is engineered, not manufactured, Software development and hardware development ate two different activities. A good design is a backbone for both the activities. Quality problems that occur in hardware manufacturing phase cannot be removed easily. On the other hand, during software development process such problems can be rectified. In both the activities, developers are responsible for producing qualitative product. + Software does not wear out. In early stage of hardware development process the failure rate is very high because of manufacturing defects. But after correcting such defects the failure rate gots __ Teduced. The failure rate remains constant for some period of time and again it starts 3 SESPM 41-4 __The Software Product and Proce, Increasing because of environmental maladies (extreme temperate, dusts any vibrations) (On the other hand software does get affected from such environmental maladie Hence ideally it should have an “idealized curse But due to some undiscovered eeroy the failure rate is high and drops down as soon as the errors get comected. Hence failure rating of software the “actual curve” is as shown below. Sie feet, sehen Manactuing ete q g Tie Te Fig. 1.2 Failure curves for hardware and software During the life of software if any change is made, some defects may get introduced. This causes failure rate to be high. Before the curve can return to original steady state another change is requested and again the failure rte becomes high. Thus the failure curve looks like a spike. Thus frequent changes in software cause it to deteriorate Another issue with software is that there are no spee parts for softoare. If hardware ‘component wears out it can be replaced by another component but itis not possible in ‘ase of software. Therefore software maintenance is more dificult thin the hardware ‘maintenance. ‘+ Most software is custom built rather than being assembled from ‘components, _— While developing any hardware product at first the circuit design with desired functioning properties is created. Then required hardware components such a8 ICs capacitors, and registers are assembled according to the design, but this is not done while developing software product. Most ofthe software is custom built However, now the software development approach is getting changed and we look for reusability of software components. It is practiced to reuse algorithms and dat structures, Today software industry is trying to make library of reussble components For example: in today’s software, GUI is built using the reusable components such a ‘message windows, pull down menus and many more such components. The approach seePM 1-5 The Software Product and Process is getting developed to use in-built components in the software. This stream of software is popularly known as component engineering. 4.4 Software Engineering Goals/Objectives Answer Most likely and previous University Exam question after reading this tople, 1 Discuss in bref the goal of softwere engineering While developing software following are common objectives. 1, Satisfy user requirements - Many programmers simply don't do what the end user wants because they do not understand user requirements. Hence it becomes necessary to understand the demand of end user and accordingly software should be developed, 2. High reliability - Mistakes or bugs in a program can be expensive in terms of ‘Fuman lives, money and customer relation. For instance Microsoft has faced rany problems because eater release of Windows has many prcblems. Thus software should be delivered only if high reliability is achieve. 5. Low maintenance costs Maintenance of software is an activity that can be done only after delivering the software tothe cistomer, Any small change in software should not cause restructuring of whole software. Tis indicates that the design of software has poor quality 4, Delivery on time - It is very dificlt to predic the exact time on which the “Gofwaze-can Be completed. But a systematic development of software can lead to meet the given desline 5. Low production costs ~The softwaze product shouldbe cost elective 6, High performance - The high performance software are expected to achieve ‘optimization in speed and memory usage. 7. Ease of reuse - Use same software in different systems and software, Environments reduce development costs and also improve the reliability. Hence reusability of developed software is an important property. 1.5 Software Myths There are some misbelieves in the software industry about the software and process of building software. For any software developer it is a must to Know such belies and reality about them. Here are some typical myths - SE&PM The Softwaro Product and Proce, Myth : Using a collection of standards and procedures one can buy software. Reality : Eventhough we have all standards and procedures with us jog helping the developer to build software, it is not possible for software professionals to build desired product. This is because - the collection which we have should be complete, it should reflect moder techniques and more importantly it should be adaptable. It should also help the software professional to bring quality in the product. ‘Myth : Add more people to meet deadline of the projec. Reality : Adding more people in order to catch the schedule will cause the reverse effect on the software project ie. software project will get delayed, Because, we have to spend more time on educating people or informing them about the project. Myth : If a project is outsourced to a third party then all the worries of software building are over. Reality : When a company needs to outsource the project then it simply indicates that the company does not know how to manage the projects Sometimes the outsourced projects require proper support for development Myth : Even if the software requirements are changing continuously it is possible to accommodate these changes in the software. Reality : It is true that software is a flexible entity but if continuous changes in the requirements have to be incorporated then there are chances of introducing more and more errors in the software. Similarly the additional resources and mote design modifications may be demanded by the software. Myth : We can start writing the program by using general problem statements only. Later on using problem description we can add up the required functionalities in the program. Reality : It is not possible each time to have comprehensive problem statement. We have to start with general problem statements; however by Proper communication with customer the software professionals. can gathet useful information. The most important thing is that the problem statement should be unambiguous to begin with. : ‘Myth : Once the program is running then its over! Reality : Even though we obtain that the program is running major part of work is after delivering it to customer. ‘Myth : Working program is the only work product for the software project Reality : The working program/software is the major component of any software project but along with it there are many other elements that should SE&PM 1-7 ___The Software Product and Process be present in the software project such as documentation of software, guideline for software support + Myth : There is no need of documenting the software project; it unnecessarily slows down the development process. Reality : Documenting the software project helps in establishing ease in use of software, It helps in creating better quality. Hence documentation is not ‘wastage of time but it is a must for any software project. 4.6 Software Crisis revlous. University Eka qucstion ofr reading thio tople. 1. Wit short note on ~ Softuae est The Software crisis means the decisive time or turning point that software developers encounter during software development. Hence software crisis represent various problems that are faced by the software developers during software development process. To understand software crisis consider following problem that is often faced by software industry. Software cost is getting increased tremendously day-by-day. The software purchase expenses are higher than the hardware purchase. This is becoming worrying trend over the years. Following graph shows the ratio of h/w and s/w cost vs years ~ Hardware cost Software cost Years Fig. 1.3 Software cost : A software crisis This graph shows that cost of software is increasing rapidly than the hardware cost, Following are the symptoms of present software crisis - 1. Day-by-day, software purchase cost is getting more than the hardware purchase cost. Hence major part of budget of a>y software industry is on software purchase, SE&PM 1 The Software Product and Prey — Oooxaraviy 2. Software products are dificult to alter, maintain, enhance, debug or moa, 3. Software resources are not being used optimally. 4. User requirements are often evolving and cannot be satisfied fully. 5. Software product not being reliable, 6. Many time software products get crashed on occurrence of specific condition 7. Delivery of software product within specified budget and on scheduled tine Various factors that have contributed to make software crisis - Following are some factors that bring the software crisis - ’) Increasing size or volume of software. ii) Lowered productivity or quality improvement Lil) Lack of skilled staf iv)Tnadequate software training +) Growing demand for more software. Solutions to present software crisis - The most effective solutions to present software crisis can be i) use and spread a software engineering practices among software engineers and i) further enhancemew in software engineering desciplines. 1.7 Software Process EE Software process can be defined as the structured set of activities that are required t [develop the software system. ee ge ‘The fundamental activities are + Specification ‘+ Design and implementation + Validation + Evolution A software process model is an abstract representation of a process. It presents é description of a process from some particular perspective. 1.7.1 Difference between Software Process and Product Answer Most likely and previous University Exam question after reading this topic. |__ Answer Most likely ond previous University Exam question after reading thie tople. | 1, Differentiate between a software product and a software process. Sr. No. Software process "Software product 1. Processes are developed by individual] Software product is developed by| user and its used for personal se. | mule users and iti used by lage E umber of people or customers. 2 Process may be small in size and| Sofware product consists of mutipe possessing ited functdnalty. t|_ program codes, related documents such defines framework for effective product] as SRS, desianing documents user generation. manuals, test cases and s0 on. 3 Generally only one person uses the| Good graphical user interface Ie most process, hence there ie a lack of user! required by any sofware product. Interface 4 Process is generally developed by| Software product is developed by| process engineers ‘software engineers who are large in| umber and work in a team, Therefore systematic approach of developing software product must be applied. 5 ‘The output of process is product. Product development occurs by| following process. 6. For example : For example Program developed for parsing the) A word processing software. input. 4.8 Software Engineering : A Layered Technology ‘Answer Mast likely and previous University Exam question after reading this toplc. 1, Define software engineering. Show how software engineering is a layered technology. «© Software engineering is a layered technology. Any software can be developed using these layered approaches. Various layers on which the technology is based are quality focus layer, process layer, methods layer, tools layer. SEaPM 1 ‘The Software Product and Proc A disciplined quality management isa backbone of software Teale engineering technology. Mates + Process layer is a foundation of = Guay fous software engineering. Basically, process defines the framework for timely delivery of software, Fig, 4.4 Software engineering layers + In method layer the actual method ‘of implementation is carried out with the help of requirement analysis, designing, coding using desired programming constructs and testing, + Software tools are used to bring automation in software development process. ‘Thus software engineering is a combination of process, methods and tools for development of quality software 1.9 Common Process Framework The process framework is required for representing the common proces activites It is as shown in Fig. 15. (Gee Fig. 15 on next page) ‘As shown in Fig. 15 the software process is characterized by process framevtork activities task sets and umbrella activities. Process Framework Activities + Communication - + By communicating customer requirement gathering is done. + Planning - Establishes engineering, work plan, describes technical risks, lists resource requirements, work products produced and defines work schedule. + Modelling - The software model is prepared by: + Analysis of requirements + Design + Construction - The software design is mapped into a code by + Code generation + Testing + Deployment - The software delivered for castomer evaluation and feedback is obtained SESPM 1-11 The Software Product and Process [Common process framework Umbrella activities Framework activities Fig. 1.5 Software process framework Task Sets - The task set defines the actual work done in order to achieve the software objective. The task set is used to adopt the framework activities and project team requirements using * Collection of software engineering work tasks + Project milestones * Software quality assurance points. Umbrella Activities ‘The umbrella activities occur throughout the process, They focus on project management, tracking and control. The umbrella activities are 1. Software project tracking and control - This is an activity in which software team can assess progress and take corrective action to maintain schedule, 2. Risk management - The risks that may affect project outcomes or quality can be analyzed. SE&PM 2_ The Software Product and Proce, 3. Software quality-assurance - These are activities required to m: quality. 4, Formal technical reviews - It is required to assess engineering work produc, to uncover and remove errors before they propagate to next activity. 5, Software configuration management - Managing of configuration proces When any change in the software occurs 6. Work product preparation and production - The activities to create models documents, logs, forms and lists are carried out. 7. Reusability management - It defines criteria for work product reuse. 8, Measurement - In this activity, the process can be defined and collected. Also project and product measures are used to assist the software team in delivering the required software. ain softwar 1.10 Process Pattern ‘As we know, process is defined as a series of activities in which one or more inputs are used to produce one or more outputs. Now in this section we will discuss ‘one more important concept that is process pattern. The process pattern is a template which appears as a general solution to a common problem, Process pattern acts as a consistent method for describing an important characteristic of software process. Using process pattern we can easily build the process‘ that satisfies all the requirements. Process pattern describes - + Complete process + Important framework activity ‘+ Task within the framework activity Scott Ambler - An object oriented consultant has proposed a template for process pattern as follows + Pattern name + Intent + Type + Initial context + Problem + Solution ‘Resulting context + Known uses SESPM 1-13 The Software Product and Process SBEPIS vas teubons menftok ed]._.118__ The Softens Pele ‘The description of process patiem is as follows - Pattern name ‘The pattern name should be a meaningful name given to the pattern. From pattern name one can guess its functionality Intent ‘The objective or the purpose of the pattern should be described here. Type ‘The type of pattem should be specified here. Ambler has suggested three types of patterns 1) Task Pattern - It represents the software engineering action or work task which is a part of process. For example Formal Technical review is a task pattern. 2) Stage Patten - It defines the process framework activity. A framework activity hhas multiple work tasks; hence stage pattern consists of multiple task patterns, For example Coding phase is a stage pattern. 3) Phase Pattern - It defines the sequence of framework activities. For example the phase pattern can be spiral model or rapid prototype model. ial context In this section the conditions under which the pattern applies are described. Sometimes the entry conditions must be true before the process begins. In this section following issues need to described 1. The set of organizational or team related activities that have already occurred, 2. The list of entry state processed. 43. Already existing software engineering or project related information. Problem Under this section the problem is mentioned for which the pattern is to be described. For example insufficient requirements is a problem. That means customers are rot sure about what they want exactly. They could not specify the requirements in toper manner. Solution Every problem for which pattern has to be described should be accompanied with some solution. For example: The problem of insufficient requirements has solution. That a -_e.—sSsS—h490 is - Establish effective communication with the customer. Ask questions in onde obtain meaningful requirements. Conduct timely reviews to modify/redefine requirements. Ths solution will help the software developer to get useful informajge before the actual work stars. Resulting context It describes the results after successful implementation of pattern. The result context should have following type of information on successful completion of pattern - 1. The team-related or organizational activities that must have occurred, 2. Bait state for the process 3. The software engineering information or project information that has been developed, Known uses/examples ‘The specific instances or applications in which the described patter is useful should be mentioned under this section. In other words we describe applicability of the pattern. For example spiral model is useful for the large scale projects in which ‘work products must be examined in several iterations. 1.11 Software Engineering and Conventional Engineering Process Software engineering is an intangible process and the raw material for software engineering is only data, On the other hand, we can see the end product at each stage jn conventional engineering process. Hence convincing customer about the final Product is more easy than in software engineering. Hence software engineering is ‘more challenging than conventional engineering process. Both the approaches have the common objectives of development, that is - developing the product with least cost, developing it on specific schedule or development of quality product. 1.12 Challenges in Software Engineering The key challenges facing software engineering are + Coping with legacy systems. 22a valuable systems must be maintained and updated. Hardware is evolved fever than ‘solbeare If original developer have moved on, managing ‘ainaning or integrating of software becomes a criteal tee + Heterogeneity challenge Sometimes systems are di tributed and include ems re distributed and inchide a mix of hardware and ‘oftware, Ths implies that software systems must deanly itegre othe! fee is =_— 1-15 _ The Software Product and Frocess- different software systems, built by different organizations and teams different hardware and software platforms. + Delivery time challenge. ‘There is increasing pressure for faster delivery of software. As the complexity of systems that we develop increases, this challenge becomes harder. ‘As software is an integral part of computer based systems, itis essential to apply software engineering principles and practices while developing software. Hence the main objective of software engineering is to adopt systematic, disciplined approach while building high quality software, 8 1.13 Software Process Model ‘Answer Most likely and previous University Exam questions afér reading thts topic. 1. Explain software process. Enumerte the ates common to al software Also list the characteristics of software proces. 2. What is software development lifecycle model ? Why i is important to adhere to a Ife ‘eycle model while developing large projects? (ET Software process model is a Software Development Life Cycle model or software paradigm. Software Development Life Cycle (SDLC) model is a diagrammatic representation of various activities required to make software product. Along with this diagrammatic representation description of each phase of the SDLC must be given. Each phase of software life cycle consists various activities to develop the software product gradually. The software life cycle also specifies the order in which teach phase must be executed. There are various life eycle models and those are - 1) Waterfall model 2) Prototype model 3) Spiral model 4) Evolutionary development model 5) Iterative enhancement model ‘The basic activities that can be carried out in life cycle model are ~ 1) Feasibility study 2) Requirement analysis and specification 3) Design 4) Coding 5) Testing 6) Maintenance fom ted ota ‘The proctss model can be defined as an sbstract representation of process, Th, pees eT ee ae an ere ee re Generic software process models are ~ + The waterfall model - Separate and distinct phases of specification and development; + Prototyping model - A quick design approach is adopted. ‘© Incremental models - It emphasizes on short development cycle © Rapid Application and Development (RAD) model «Evolutionary process models - Specification, development and validation are interleaved. © Incremental mode! © Spiral model © WINWIN spiral model © Concurrent assembly mode! Characters of software processes - Following are some important characteristics of software processes ~ 1. Understandability : The process must be explicitly defined such that it could bee understood clearly by the software developers. 2. Acceptability : The defined process must be accepted and used by the software engineers during the software development process. 3. Reliability : The defined software process must be without erzors in order rake it reliable. 4. Visibility : Each process must produce clear results so that the stage of software process must be seen, 5. Supportability : The process activity must be supported by the case tools. 6, Robustness : It is the ability of software process to cope with errors duting execution or and to continue to operate despite abnormalities in input 7. Rfficiency : This is the characteristic of the process that denotes how fast t process will perform. 8 Maintainability : This characteristic of process denotes the ability of th process to handle the changes or some improvements within it sEaPM 1-17 __ The Software Product and Process 1.13.1 Need for Software Development Life Cycle Model ‘The software development team must decide the lifecycle model that is to be used for software product development and then the entire team must adhere to it. Ths is necessary because the software product development can then be done systematically. Fach team member will understand - what is the next activity and how to do it. Thus life cycle model will bring the definiteness and discipline in overall development process. Every life cycle model consists of definite entry and ext criteria for each phase. Hence the transition of the product through various phases is definite. If the life cycle model is not followed for software development then any team member can perform. any software development activity, this will ultimately cause a chaos and software project will definitely fail without using life cycle model, itis difficult to monitor the progress of software product. Let us discuss various life cycle models one by one. 4.14 Waterfall Model Ansicer Most likely ond previous University Exam question after reading this toplo. 11. Which are the major phases in the woterall model of software development ? Which ‘phase consumes the maximum effort for developing atypical sofare product? 20111 = + The waterfall model is also called as ‘linear-sequential mode!’ or ‘classic life cycle model’. It is the oldest software paradigm. This model suggests a systematic, sequential approach to software development. + The software development starts with requirements gathering phase. Then progresses through analysis, design, coding, testing and maintenance. Fig. 1.6 illustrates waterfall model. Fig. 1.6 Waterfall model SESPM 18 __The Software Product and Proce —__— Oo oo—cna ss + In requirement gathering and analysis phase the basic requirements of thy system must be understood by software engineer, who is also called Analyy, ‘The information domain, function, behavioural requirements of the system, fare understood. All these requirements are then well documented ang discussed further with the customer, for reviewing. ‘The design is an intermediate step between requirements analysis ang coding Design focuses on program attributes such a5 = Data structure * Software architecture + Interface representation + Algorithmic details. ‘The requirements are translated in some easy to represent form using which coding can be done effectively and efficiently. The design needs to be documented f further use, + Coding is step in which design is translated into machine-readable form. design is done in sufficient detail then coding can be done effectively Programs are created in this phase. © Testing begins when coding is done. While performing testing the maja focus is on logical internals of the software. The testing ensures execution o all the paths, functional behaviours. The purpose of testing is to uncove terrors, fix the bugs and meet the customer requirements. “+ Maintenance is the longest life cycle phase. When the system is installed an put in practical use then error may get introduced, correcting such ers ‘and putting it in use is the major purpose of maintenance activity. Similar! enhancing system's services as new requirements are discovered is agai ‘maintenance of the system, This model is widely used model, although it has many benefits and drawbat Let us discuss them. Bonefits of waterfall mode! 1. The waterfall model is simple to implement, 2, For implementation of small systems waterfall model is useful. SESPM 1-19 __ The Software Product and Process eee A hoe Drawbacks of waterfall model There are some problems that are encountered if we apply the waterfall model and those are 1, It's dificult to follow the sequential flow in software development process. If some changes are made at some phases then it may cause some confusion. 2. The requirement analysis is done initially and sometimes it is not possible to state all the requirements explicitly in the beginning. This causes difficulty in the project. 43. The customer can see the working model of the project only at the end. After reviewing of the working model; ifthe customer gets dissatisfied then it causes serious problems. 4, Linear nature of waterfall model induces blocking states, because certain tasks ‘may be dependent on some previous tasks. Hence it is necessary to accomplish all the dependent tasks first. It may cause long waiting time. 4.45 Prototyping Model “Answer Most likely ond previous University Exam questions after reading thls ¢ople. 1. What is prototype model ? Under what cumstances it is beneficial to construct a prototype model ? Does the construction of a prototype model always increase the ‘ouerall cost of software development ? 2, Explain the advantages of prototyping model over waterfall model, ESTA 3. What is softwae prototyping ? What are the types of prototype ? What are the advanta and disadvantages of prototyping ? ns 4, Explain prototype model. What are the advantages of developing « prototype of « ‘stem ? Exerc + In prototyping model initially the requirement gathering is done. ‘© Developer and customer define overall objectives; identify areas needing. ‘more requirement gathering. + Then a quick design is prepared. This design represents what will be visible to the user in input and output format. + From the quick design a prototype is prepared. Customer ot user evaluates, the prototype in order to refine the requirements. Iteratively prototype is tuned for satisfying customer requirements. Thus prototype is important to identify the software requirements. Feet SE&PM Software Product a * When working prototype is built, developer use existing program F program generators to throw away tre prototype and rebuild ti to high quality * Certain asses ‘of mathematical algorithms, subset of ‘comman systems and other applications where results can be easily examines real time interaction can be developed using prototyping paradigm, When to choose it ? * Software applications that are relatively easy to prototype _almos involve human-machine interaction (HCI) the prototyping 1 suggested, vrunizaton Bling of Commugeaton| __,] butang csstomer sign Deployment CConstvction ‘nd a i" prototype ig. 1.7 Prototyping * A general objective of software is defined tut not detailed input, proc OF output requirements. Then in such a ease prototyping model is seh + When the developer is unsure of the effciency of an algorithm « adaptability of an operating system then prototype serves as a better ch Drawbacks of prototyping 1 Ih the ‘first version itsel; customer often wants “few fixes" rathe rebuilding of the system. Whereas rebuilding of new system maintain 2. The first version may have some compromises 5 Sometimes developer may make implementation compromises to get pro Working quickly. Later on developer may become cotentic compromises and forget why they are inappropriate ‘SEBPM joftware Product and Process 4.16 Incremental Model Answer Most likely and previous University Exam question after reading this toplc. 1. Explain RAD model ? Discuss the situation where RAD model is useful 010, + The incremental model has same phases that are in waterfall model. But it is iterative in nature. The incremental model has following phases. 1, Analysis 2. Design 3. Code 4, Test See Fig. 1.8 on next page. ‘+ The incremental model delivers series of releases to the customer. These releases are called increments. More and more functionality is associated with each increment, + The first increment is called core product. In this release the basic requirements are implemented and then in subsequent increments new requirements are added. + The word processing software package can be considered as an example of incremental model. In the first increment only the document processing facilities are available. In the second increment, more sophisticated document producing and processing facilities, fle management functionalities are given. In the next increment spelling and grammar checking facilities can be given. ‘Thus in incremental model progressive functionalities are obtained with each release. When to choose it ? 1. When requirements are reasonably well-defined. 2. When overall scope of the development effort suggests purely linear effort. 3. When limited set of software functionality needed quickly. Merits of incremental mode! 1. The incremental model can be adopted when there are less number of people involved in the project. 2, Technical risks ean be managed 3. For a very small time span, at least core product can be delivered to the customer, each increment. ‘analyse Devry of Test_]-°* increment a Deaen }~[ cose} [es Fig. 1.8 The incremental model Detivery of i i wz ‘SEBPM 1-23 The Software Product and Process 4.16.1 Rapid Application Development (RAD) Model ‘Ansuet Most likely and previous Universtiy Exom questions after reading this top. 1. Wit shot note on = RAD model, 2. The RAD model encompasses what phases during the software development ? 3. Explain RAD mode! to achieve ropd developmen. The RAD model ssumes the txence of one thing What's and why the esumpon i tue? + The rapid application development model is type of incremental software process model in which there is extremely short development cycle. + This model is similar to waterfall model which achieves the high speed development using component based construction. + To develop the fully functional system within short time period using this ‘model it is necessary to understand the requirements fully and to have a restricted project scope, Team 1 Team 2 Seam Business Business Business rrodeting modeling redoing Data Data Date necting |} rmoseling e+ [ mosetng F Process Prosess| Process modeling rmoaetng [ rmodeting [7 [avpicaton pian Aericaton] seneraton| generaton| } generaton | Testing and Testing and Tesing and tumover ‘umover tumover Fig, 1.9 Rapid application development model * Various phases of RAD model are 1) Business modeling - In business modeling, the information flow is modeled into various business functions. These business functions collect following information. ‘+ Information that drives the business process, * The type of information being generated. ee ee 1+ The generator of information, ‘+ The information flow. + The processor of information 2) Data modeling» In this phase the information obtained in busines i lasfied into data objets The characters of dala objets (atts! ‘enti. The relationship among various data objet is defined 5) Process modeling - In this phase the data objects ate transformed in, rocasses. Tse proces are fo extrac the information fom data objects np 4 responsible for implementing busines fenton. ‘9 Application generation - For cresting software varios automaton tone can by wed. RAD ‘also makes use of reusable components or crests rusts ‘components to have rapid development of enfare 59 Testing and tumover - As RAD uses reusable components the testing ef te reduced. But i new components are added in software develope, process then such components need tobe tested. Ii equally important fo ey 2 the interac, Drawbacks of rapid application development 1. It requires mutple teams or large numberof people to work on the sale projec. 2. This model requires heavily commited. developer and customer i comlament sacking then RAD projects wil al 3. The projects using RAD model requires heavy resources, 4 If thee is n0 appropiate medlatzaion then RAD projects fal. Pexfrmance cam be problem to sich projec, 5, The projects using RAD move find i dificult to adopt new technologies ‘Situations in which RAD model is used ‘The RAD model is suitable for information system applications, busines applications and the for systems that can be mdularized Deeatse of following 1. This model is simi to yatefll model oye. 2-1 uses component-based construction and emphasises reuse and code ‘generation but it uses very short develope? ‘3. This mode! uses multiple teams on scaleable projets, 4 The RAD modal is ute forthe projets wher techn sks ate not high 5: The RAD model regres hevy resources. = ee 4.47 Spiral Model “Ansiger Most likely and previous University Exam questions after reading tls Lope 1. As you move outward along the process flow path of spiral model what you con soy about software that is being developed or mainained ? [es 2005, June 2005 10 Hark 2. Compare wal and spiral mode of sfare development. How dos ‘roe fcr et the pra model of sua dengan? Explain why the sir model is considered tobe metamodel 4. ipl the working of spiral model. Why spiral model is onieed 10 be ra made? 5. Bon how «sof development flr sited and ral eed i + This model possess the iterative nature of prototyping model and controlled and systematic approaches of the linear sequential model. + This model gives efficent development of incremental versions of software, In this model, the software is developed in series of increments + The spiral model is divided into a number of framework activities. These framework activities are denoted by task regions. ‘+ Usually there are six tasks regions. The spiral model is as shown in Fig, 1.10. See Fig. 1.10 on next page. ‘+ Spital model is realistic approach to development of large-scale systems and. software, Because customer and developer better understand the problem statement at each evolutionary level. Also risks can be identified or rectified at each such level. ‘+ In the initial pass, product specification is built and in subsequent passes around the spiral the prototype gets developed and then more improved versions of software gets developed. © During planning phase, the cost and schedule of software can be planned ‘and adjusted based on feedback obtained from customer evaluation. ‘+ In spiral model, project entry point axis is defined. This axis represents starting point for different types of projects. SESPM ek anaae \)\ Paring cesta Tain rants Cusomer vation | Constrcon ‘scr ‘raracase Fig 1.10 Spiral model For instance : Concept development project will start at core of spiral and w continue along the spiral path. Ifthe concept has to be developed into actual pro then at entry point 2 the product development process stars. Hence entry point 2 called product development project entry point. The development of the project can ‘carried out in iterations, ‘+ The task regions ean be described as ) Customer communication - In this region it is suggested to establish custom communication 4) Planning - All planning activities are carried out in order to define resous® time line and other projet related activities, fii) Risk analysis - The tasks required to calculate technical and management risks axe carried out iv) Engineering - In this task region, tasks required to build one or more representations of applications are cartied ut W Construct and release - All the necessary tasks required to construct, test, install the application are conducted. Some task that are required to provide user support are also carried out in tis task region. vv) Customer evaluation - Customer's feedback is obtained and based on customer evaluation required tasks are performed and implemented at installation stage. ‘+ In each region, number of work tasks are carried out depending upon the characterisis of project. For a small project relatively small number of work tasks are adopted but for a complex project large number of work tasks can be caried out ‘+ In spiral model, the software engineering, team moves around the spiral in 2 clockwise direction beginning, at the core. Advantages of spiral model 1. Requirement changes can be made at every stage. 2. Risks can be identified and rectified before they get problematic. Drawbacks of spiral model ‘+ Ttis based on customer communication. If the communication is not proper then the software product that gets developed will not be up to the mark. It demands considerable risk assessment. If the risk assessment is done properly then only the successful product can be obtained. 4.17.4 WIN-WIN Spiral Model ‘+ As in spiral model the customer communication is important for obtaining the requirements of the project, the WIN-WIN model also suggests proper ‘communication with customer. In realty customer and developers undergo through the process of negotiation. Successful negotiation occurs when both the sides win, This is called win-win result. Customer's win means - Obtaining the system that satisfies most of the needs. Developer's win means - Getting the work done with realistic and achievable budgets and deadlines. «Ih WIN-WIN spiral model negotiation activities are carried out at the beginning of each pass of the spiral ‘+ Various activities that can be carried out in WIN-WIN spiral model are —— a —"—S— SSF Oana 1 Henfcton of‘stkeole 2 Determination of ‘har wns codon, 2. Negotiations of sakes sing for win contion. With the con tatenre pet am renee far win-win tule Then deemine wy CBjetves crane and alemates alae poses an proc, Aye and se ther Deine net evel of produ and proces. lat proces and product dfn. Take review of prot and ve necessary comment on it some (2)tenteatn of satire (GN (6) Desiton of predict and process (oy Recening rd arabe Stopecties Fig. 11 WINN spiral model ‘here ae thee anchor points that can be defined in WIN-WIN spiral model 1. LCO - That means Life Cycle Objective. 1 defines the ebjectives for ma software engineering activities. the cbjecives for mal 1-29 The Software Product and Process 1:28 _The Software Product and Process 2 TA rat means Life Cycle Architecture, It defines the software architectures that can be produced with all the objectives are ast tea 3 10C 5 That means Initial Operational Capability t represents software with all vel the desired initial operational capablitee 1.18 Component Assembly Model + Component based assembly model uses object oriented technologies. In i gies, the emphasis is on creation of classes. Classes are the enites which encapsulates data and algorithms * In component based architecture, classes (.. components required to build pplication) can be used as reusable components, ‘+ The Component Based Model (CBD) uses various characters model This model is evolutionary by nature. Hence software development can be done using iterative approach, Promina kanes exerts [ese] ema maa Fane] Gear ce vem, |_| Ses ‘eo tere Fig. 1.12 Component assembly model SeaPM 41:20 __The Software Product ana} + In CBD model, multiple classes can be used. These classes are basical prepackaged components +The model works in following manner ~ 1 te Stop 1: Fist identiy ll the required candidate components, Le, clases with help of application data and algorithms. ‘Step 2 : If these candidate components ‘hey must be present in the library. re ured in previous software Projects yy Step 3 : Such pre existing components can be extracted from the rary and use farther development Step 4: But sf the required component is not present in the Hbrary then build g, ‘create the component a per requirement Step § : Place this newly created component in the Ubrary. This makes one iteration of the system, ‘Step 6 : Repeat step 1 to 5 for creating n iterations, where n denotes the number gf iterations required to develop complete application ‘Advantage 1. This model emphasizes on reusability of software components. This rewsaiiy of component reduces the development cycle time by 70 % and project cost by wm 1.19 Rational Unified Process (RUP) "inser Most hey ond pesiou Unies am gc ln ns 1. Explain ue recs What re choc ? =e ‘The unificd process is a framework for objet oriented models. This model is ao called as Rational Unified Process model (RUP). It i proposed by Twat Jacobson, Grady Bootch and James Rumbaugh. This model ig iterative and. incremental by nature. Let us discuss various phases of unified process, ‘There are 5 phases of unified process model and those are + Inception + Hhboration + Constsction + Transition + Production ‘SEBPM Lot us understand each of these phases in detail Inception In this phase there are two major activities that are conducted : Communication and plasning. By having customer communication business requirements can be identified. Then a rough architecture of the system is proposed. Using this rough architecture it then becomes easy to make a plan for the project. Use cases are created Which elaborates the user scenario. Using use cases the sequence of actions can be identified. Thus use cases heip to identify the scope of the project which ultimately proves to be the basis for the plan. Elaboration . Elaboration can be done using two activities : Planning and Modeling. In this e the use cases are redefined. And an architectural representation is created using, five models such as use-case model, analysis model, design model, implementation model and deployment model. ‘Thus executable baseline gets created. Then a plan is created carefully to check whether scope, risks and delivery dates are reasonable. [ | Construction Deployment Release =} Fig. 1.13 Unified process model SEPM 1-32_ The Software Product and Pye. Construction ‘The main activity in this phase is to make the use cases operational. The pny, 20 and design activites tat are started in elaboration phase are completed in yy — tnd a source code is developed which implements all desired functionalities “pe* 8 ‘unt testing is conducted and acceptance testing is carried out on the use cases." 1. | ‘Transition — In the transition phase all the activities that are required at the time of deploym, In of the software product are carried out. Beta testing is conducted when softwar aro: delivered to the end user. User feedback report is used to remove defects from. tn created system, Finally software team prepares user manuals, installation guides yg de troubleshooting procedures. This makes the software more usable at the tine vere release igi Production This is the final phase of this model. In this phase mainly the maintenanhan activities are conducted in order to support the user in operational environment. soft Various work products that may get generated in every phase are as ging'™t below - wich F Inception Phase “Transition phase. |so¢ “Il use case model ‘Delvered software ‘nl risk assessment increments + Project lan 1 Beta test repo + User feedback + Prlminay design | “Te PT | report model Tost cases Risk ist User manual ‘erative project plan + Preliminary user manual * Intalation manual ‘Thus the genetic software process models are applied for many years in software development process in order to reduce chaos in the process of development. Each 1.2 these models suggest different process flow but they insist on performing the same of generic framework activites. 20 sEePM 1-33) =~ The somtware F 1 4.20 Agile Processes ‘Answer Most likely and previous University Exam question after reading this topte, 1. What is an agile process ? Discuss various principles used in agile process In this section we will first understand “what i an agile process?” and then discuss various principles used in agile process. In 1980's the heavy weight, plan based software development approach was used to develop any software product. In this approach too many things are done which were not directly related to software product being produced. This approach was rigid. That means if requirements get changed, then rework was essential. Hence new methods were proposed in 1990's which are known as agile processes. ‘The agile processes are the light-weight methods and they are people-based rather than plan-based methods. The agile process forces the development team to focus on software itself rather than design and documentation. ‘The agile process believes in iterative method. The aim of agile process is to deliver the working model of software quickly to the customer. For example : Extreme programming is the best known of agile process. Set of principles of agile process 1. Customer involvement : The customer should be involved in the software development process. The customer specifies the software requirements and evaluates each iteration of the.system. 2. Incremental change : Software is developed in increments. Each increment rust be evaluated by the customer and customer should suggest changes in the system if any. These changes must be implemented in the next increment, 3. Assume simplicity : The software system to be developed should be simple and the complexity of the system should be eliminated. 4, People are important than process : The “skill of the people should be exploited, Instead of following rigid prescribed process, people should get the liberty to develop their own ideas and their own working style. 5. Embrace change : Requirements evolve over time. If any changes occur in. requirements or in design then system should accommodate those changes. 1.20.1 Extreme Programming Extreme Programming (XP) is one of the best known agile process. The extreme Programming approach was suggested by Kent Beck in 2000. The extreme Programming process is explained as follows > + Customer specifics and priorities the system requirements. . Ss ee ern ota ees = ee ee ee ‘work in small tasks. The efforts and the estimated resources regu these tasks are estimated. +The customer proitesare the stories for implementation I the regi changes then Senetines unimplemented stores have fo be dare reste the complete software small and fount releases + For accommodating new changes, ew ston-cad must be developed ‘+ Evahte the sytem along with he estomer. This proces fs demonstrated by the fllosing Fig. Fig, 1.14 Extreme programming release eye ‘Various rules and practices used in extreme programming are as given below Instead of erating a large requirement document use ‘Sore are witen by the customer in whch whet tay ‘ee fe mented, Release planning | & release plan for overal project is prepared fom wi ‘te tration plan can be propsred for indus ‘Small releases | The developer braaks dawn the user sos into sma ‘releases and a plan for releanng the small incon prepare, erave process | Divide the development work into smal faratons Kee {eration of nearly constant length, Heratve develope! bel in quck o age development ‘Stand up meetings | The stand up meetings must be conducted forthe eat outcomes of the project |__| extcomes of ie project omnes re on Di 1-35 __ The Software Product and Proc The Software Precinct anc Proce Simple design Simple design always takes less ime than the complex: design It is always good to keep the things simple to meet the curent requirements ‘Spike solution | For answeting the tough technical problems create the Designing ‘pike solutions. The goal of these solutions shoud be to ‘duce the technical sks. Refactoring Refactoring means reductons in the redundancy, be built Bie develop, (prodact folowing must be gathered - 1 Scope and objective of the projact must be defined 12 Techoscal or management constraints must be located. ‘This information helps the project manager to estimate overall est of the proje Seder, possible risks can be identified, The scope and objective of the software product can be defined in softws requirement analysis process. Using product objectives the gnals for the product ¢ be identified. The scope of software product identifies various data, functions = For identifying the technical or management constraints delivery deadlines, buds estimation, personnel availability and many other factors must be evaluated. 3. Process : A software process provides framework from which software development pi can be prepared. Various framework activities are applied in order to identify t milestones, work products for the software. Finally umbrella activities are carried ¢ to define process model. These umbrella activities must be carved out through out ! process, 4.22 Software Process Improvement Process metrics are the set of process indicators that are used to improve & store pense, Pons eis lo epee The software process can be improved with the help of process metrics. It can itustrated a8 below - Fig. 1.45 Process improvement Le ‘SE&PM 1-39 The Software Product and Process In making improvements to any software system, there are three basic quality factors 10 consider: product, people and technology. These three are the major determinants of software cost, schedule, productivity and quality. Fig. 1.16 The factor people includes hiring the best people you can find, motivating them to do the best job and training them on the skilis needed to perform their jobs effectively. The technology factor includes acquiring and installing tools that help automate. The technology also includes use of new software languages to develop the desired quality product (eg, Java, Visual C+, Oracle). The complexity of the factor product has great impact on quality and team performance. Out of these three components if one component is altered then it will impact other-two factors. For example if an organization makes use of new testing tool(technology) then the staff(people) must be trained to work with this tool. ‘The organization must consider if this new tool helps in generating the desired software product. ‘This process triangle resides within the citcle, This circle specifies the environmental conditions such as © Customer characteristics(Communication and collaboration between user and developer). © Business conditions(Organizational policies, Business rule © Development environment(Use of new technologies, Use of automated tools) SEGPM 1:40 __The Software Product ang» | Pa! 1.23 Capability Maturity Model (CMM) sy __Ansicer Most lkely and previous Unloersty Exam question ger reading yg ep 1. What is CMM ? Dicuss vrs level mn oe ‘+ The Software Engineering Institute (SEI) has developed a co process meta-model emphasizing process maturity. It is predica ‘of system and software capabilities that should be ‘organizations reach different levels of process capability and MPrehen, ted on a Present wi maturity ‘The Capability Maturity Model (CMM) is used in assessing corganization’s processes allow to complete and manage Projects. + Various process maturity levels are Row well NeW softvay Level 1: Initial - Few processes are defined and individual efforts are taken Level 2: Repeatable - To track cost schedule and functionality basic pri management processes are established. Depending on earlier successes of projects i similar applications necessary process discipline can be repeated. Level 3 : Defined - The process is standardized, documented and followed, All Projects use documented and approved version of software process which is usefili developing and supporting software. Level 4 : Managed - Both the software process and product are quantitai understood and controlled using detailed measures. Level 5 : Optimizing - Establish mechanisms to plan and implement charg Innovative ideas and technologies can be tested ‘Thus CMM is used for improving the software project. 1.24 Product and Process Metrics + Software product and process metrics are used to measure varie characteristics of software process ot product. an * Software product metrics measure the software development process environment. Software process metric measure the software product. ani Examples of product metrics are-size, reliability, complexity functionality ion Examples of process metrics are - productivity, effort estimates, off and failure rate. SE&PM 1-41 — The Software Product and F fOChh™ solved Exercise 1 What are software development problems ? Describe. Ans.» Solid requirements - Clear, complete, detailed, cohesive, attainable, testable requirements are not identified clearly. + Realistic schedules - While scheduling for the project an adequate time is not assigned for planning, design, testing, bug fixing, re-testing, changes and documentation. + Adequate testing - Generally testing is done at the end which is not desired. Start testing early on, re-test after fixes or changes and plan time for testing and bug-fixing. ‘Early’ testing ideally includes unit testing by developers and built-in testing and diagnostic capabilities. © Stick to initial requirements as much as possible - The change in requirements is a major problem in software development. If changes are necessary, they should be adequately reflected in related schedule changes. If possible, work closely with customers/end-users to manage expectations. This will provide them a higher comfort level with their requirements decisions and minimize excessive changes later on. + Communication - Communication gap generates poor quality software. While developing software use prototypes and__continuous communication with end-users if possible to clarify expectations. 2 Explain an advantage of adhering to life cycle model for software development. ‘Ans. : A life cycle is the sequence in which a project specifies, prototypes, designs, implements, tests and maintains a piece of software. In software engineering, the life cycle model depicts various stages of software development process. Using life cycle ‘model various development issues can be solved at the appropriate time. The technical risks can be managed during development of the software. The requirement elicitation can be done before actual product gets developed. If the life cycle model is used for developing the software product then the testing and maintenance can be carried out cffectvely and efficiently. For developing some software systems there is need for parallel development of different parts of the system. In such cases lie eycle model is preferred. Q3 How does a spiral model represent a process suitable fo represent a real time problent ? Ans. : Spiral model represents a process suitable to represent a real time problem because of following reasons - 1. Software evolves as the project prog! risks are identified and managed and ‘And at every evolutionary level the s are reduced at every stage. SERPM. 1-42 __The Software Product an p, Ye approach a 2. emabls the developer to apy the prottype approsch at any evolution ofthe prot ble doping the aren sya deveopment othe prot 2. The iterative frameworks pin asyeng the product at eve — of technical risks 4. The spiral mdel demands diet consideration of technics fa of projet. The sae ede Boe thy gt poblemate 24 Compare and contst weil mode! with spiral motel lage atic sth Stepige "Y Olen, = ‘Sr. No. Waterfall mode! ‘| Spiral model +] Angie wrnng t| th teed fret ao Soomarlometes,,, | tedomerie fos: oe = © | Gets monmsns ares te ein drs svc Siete seramee oars + | greceswstesnat 7 Tineeton as + | cate songs tava | eoncmn do SPS | Bea ga oe © | Msn cee eiones | treme art eraiesaregte, | Ragu on we ne wacy_ meicnaerecmaee Lae [cone sr ws ra | anergy 7 | i nt st ont | nae fen: mee eee oil ae a same pot ere tf ha a Be poe Se olf ony co Sat are es Project is SE&PM 1-43 The Software Product and Process Q6 Define the terms product and process in software engineering. ‘Ans. : The product in software engineering is a stand alone entity that can be luced by development organization and sold on the open market o any customer who is able to buy them. The software product consists of computer programs, procedures and associated documentation (documentation can be in hard copy form or it ‘may be in visual form). Some of the examples of software product are databases, word processors, drawing tools. The process in software engineering can be defined as the structured set of activities that are required to develop software system. Various activities under software process are - * Specification «Design and implementation + Validation + Evolution Q7 How does “Project Risk” factor affect the spiral model of software development 2 ‘Ans. : The spiral model demands considerable risk assessment because if a major risk is not uncovered and managed, problems will occur in the project and then it will not be acceptable by end user. Q8 Explain iterative waterfall model Ans. : Iterative waterfall model - The iterative waterfall model is as shown in Fig. 1.17. Requirements Ly Implementation Maintenance Fig. 1.17 Iterative waterfall model The first phase is requirement gathering phase in which all possible requirements are identified. The Software Requirement Specification is prepared in this phase. The design phase is responsible for creating architectural view of the software. While designing the software new requirements can be identified.

You might also like