0% found this document useful (0 votes)
189 views

Software Engineering

Software book pdf, Diploma 4th sem
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
0% found this document useful (0 votes)
189 views

Software Engineering

Software book pdf, Diploma 4th sem
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
You are on page 1/ 114
TABLE OF CONTENTS a Chapter -1 Software Development Process (1-1) to (1-16) 1.1 Definition of Software and Software Enginee 1 1.2. Software as Layered Approach es 1.3. Characteristics of Software Enginecring 14 Types of Software LS Software Development Framework 1 1.6 Software Process Framework 14 1.7 Process Model 7.1 Perspective Process Model 174.4 Waterfall Mod 1-5 1.74.2 RAD Model (Incremental Model)... 1-6 1.7.13 Spiral Model 1-7 1.72. Specialized Process Model 1-9 1.72.1 Component Based Development... 1-9 1.72.2 Formal Methods Model 1-9 1.8 Agile Software Development, 1-10 1.8.1. Agile Process and its Importance 1-10 182. Extreme Programming iu 183 Adaptive Software Development 12 184 SCRUM. 12 L8S_ Dynamic System Development Method (sp) ear) 18.6 Crystal 14 1.9 Selection Criteria for Software Process Model 1 - 15 Litas Chapter-2 Software Requirement Engineering (2-1) to (2-18) Part I: Software Engineering Practices ware Engineering Practices and its Importance. 22 23 25 26 27 29 210 au 212 Core Principles 2-1 Communication Practices. Planning Practices Modeling Practices Construction Practices 2.4 Software Deployment 2-3 Part Il: Requirement Engineering 1 Gathering and Analysis s 2.8.1 Inception. 2-6 2.82 Elicitation 2-6 2.83 Elaboration 2-6 2.84 Negotiation 2-6 285. Specification 2-6 2.86 Validation. 2-6 2.87 Requirement Management 2-7 Types of Requirements 2.9.1 Functional Requirements 29.1.1 Problems Associated with Requirements, 2.92 Non Functional Requirements 29.2.1 Types of Non Funetional Requirements 2-8 Domain Requirements 2-9 2.93 Difference between Functional and Non Functional Requirements liciting Requirements 2.10.1 Collaborative Requirements Gathering .. 2-10 2.10.2 Quality Function Deployment 2-1 2.10.3 Usage Scenarios 2.10.4 Elicitation Work Product. Developing Use Cases Building Requirement Models 2.121 Overall Objectives 24: Definition of Software Requirement Specification (SRS). 2.14 Need for SRS 16 215 Format 16 2.16 Characteristics 18 Part ill: Software Requirement Specification Lista 14 Chapter -3 Software Modelling and Design (3-1) to (3-24) Translating Requirement Model into Design Model 3-1 3.1.1 Data Model 3-2 3.11.1 Data Object, Attributes and Relatia 3-2 3.1.2 Cardinality and Modality 3 3.2 Analysis Modeling 3-3 32.1 Elements of Analysis Mode! 3.3 Design Modeling 3 33.1 Fundamental Design Concept 3-4 34 Design Notations, 3-6 3.4.1 Data Flow Diagram (DED) 3-6 3.41.1 Data Flow Diagram 3-6 342. Structured Flow Chart 15 343 Decision Tables 3 38° Testing 3-18 3.5.1 Meaning and Purpose 3-18 35.2 Black Box and White Box Test 353° Leveloof Testing 3.53.1 Unit Testing 354 Test Documenta 3.54.1 Test Case Template 3-21 3.542 Test Plan 3.54.3 Introduction to Defect Report... 3-23 3.54.4 Test Summary Report 2 Chapter -4 Software Project Estimation (4-1) to (4-20) T 41 Management Spectrum 4s 4.1.1 The People 4-1 4.1.2 The Product 4.1 4.1.3 The Process 4 4.1.4 Project 4 42. Metrics for Size Estimation 4-2 4.2.1 LOC hased Estimation 4-2 4.2.2 Function Points, 403 43 Project Cost Estimation Approach 4-5 43.1 Overview of Heuristic Technique 4-6 432 Analytica and Empirical Estimation. .... 4-6 43.2.1 Halstead’s Sofware Science 4-6 44 COCOMO. 4-8 48 cocoMon 4-1 46° Risk Management 4e1s 4.6.1 Software Risks 4e1s 4.62 Risk Identification 4-16 4.6.3 Risk Projection 4.17 4.64 Risk Assessment a0 4.6.5 Risk Containment 4-18 4.66 RMMM Strategy 4-18 Chapter-5 Software Quality Assurance and Security (5-1) to (5-14) SL Project Scheduli s-1 5.1 Basic Principle s-1 5.1.2 Work Breakdown Structure s-1 $.1.3 Activity Network and Critical Path Method $ - 2 5.14. Scheduling Techniques 5-4 52 Project Tracking, 4.8 5.2.1. Time Line Chart (Gantt Chart) 5-5 5.22 Eamed Value Analysis 5-6 53 Software Quality Management Vs. Software Quality Assurance 5-7 54 Phases of Software Quality Assurance 5-8 SS Software Quality Control. 5-9 6 Quality Evaluation Standards 5-9 56.1 Six Sigma 5-9 5.62. 180 for Software, -5-10 363 CMMI : c se 5.7 Software Security. ....... ; 5-12 58 Introduction to DEVOPs $12 $9 Secure Software Engineering... 5.13 Solved Sample Test Papers (S - 1) to (S -2) Solved Sample Question Paper (8-3) to(S -4) T TEOMA PURIEATONT Ang at UNIT-1 Software Development Process 41] Definition of Software and Software Eapinenring 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 Engineering : "Software engineering is a discipline in which theories, methods and tools are applied to develop professional software product.” Attributes of Good Software ‘essential attributes of good software and those are There are some (1) Maintainability : Sometimes there is a need to make some modifications in the existing software. A good software is a software which can be easily modified in order to meet the changing needs of the customer. 2) Usability : It is the ability of the software being useful. For making the software useful it is necessary that it should have proper GUI and documentation. o : The dependability is a property that includes reliability, security and safety of software. In other words the developed software product should be reliable and safe to use; it should not cause any damage ar destruction () Efficiency + The software should be efficient in its performance and it should not waste the memory Board Question 1. State any four attributes of a good software: 1.2 | Software as Layered Approach + Software engineering is a layered technology. Any software can be developed using these layered approaches, Various layers on which the technology is based aw quality focus layer, process layer, methods layer, tools layer. +A disciplined quality management is a backbone of software engineering technology. +Process layer is a foundation of software engineering, Basically, process defines the framework for timely delivery of software 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 pmcess, methods, and tools for development of quality software. Fig. 1.24, Board Questions 1, Explain software enginevring as a layered technology approach. 2. Explain software engineering asa layered technology approach with neat diagram. Coo SaltwareEaghewing Lia] characteristics of Software Engineering + Software is engineered, not manufactured 1) Software development and hardware development are two different activities 2) A good design is a backbone for both the activities 3) Quality problems that in hardware manufacturing phase cannot be removed easily On the other hand, during software development process such problems can be rectified. 4) In both the activities, developers are responsible for producing qualitative product. + Software does not ware out 1) 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 gets reduced. 2). The failure rate remains constant for some period of time and again it starts increasing because of environmental maladies (extreme temperature, dusts, and vibrations). 3) On the other hand software does not get affected from such environmental maladies. Hence ideally it should have an “idealized curve". But due to some undiscovered errors the failure rate is high and drops down as soon as the errors get corrected. Hence in failure rating of software the “actual curve" is as shown below Fame ane ean ti eves 12 Software Development Process 6) Thus the failure curve looks like a spike. Thus frequent changes in software cause it to deteriorate, 7) Another issue with software is that there are no spare parts for software. If hardware component wears out it can be replaced by another component but it is not possible in case of software 8) Therefore software maintenance is more difficult than the hardware maintenaneé + Most software is custom built rather than being. assembled from components 1) While developing any hardware product firstly the circuit design with desired functioning, properties is created. Then required hardware components such as ICs, capacitors and registers are assembled according to the design, but this is not done while developing software product. 2) Most of the software is custom built. 3) However, mow the software development approach is getting changed and we look for reusability of software components. 4) It is practiced to reuse algorithms and data structures, 5) Today software industry is trying to make library of reusable components, For example : In today’s software, GUI is built using the reusable components such as message windows, pull down menus and many more such components. 6) The approach is getting developed to use in-built components in the software, This stream of software is popularly known as component Fig. 1.3.4 4) During the life of software if any change is made, some defects may get introduced. This causes failuwe rate to be high, 5) Before the curve can retum to original steady state another change is requested and again the failure rate becomes high. Board Questions 1. Describe the characteristics of software. 2. Define softunre. State three characteristics. of software. 3. Explain changing nature of software. 4. What is softoare ? What are its characteristics ? Elaborate the software characteristic does not wear out “Software . TECONICAL PUBLICATIONS” Anup rat roma Software Engheeting [iw] apebaacnss COS Based on changing nature of software, various types of software are defined as follows 1. System software - © It is collection of programs written to service other programs. © Typical programs in this category are compiler, editors and assemblers. © The purpose of the system software is to establish a communication with the hardware. 2. Application software - © It consists of standalone programs that are developed for specific business need, © This software may be supported by database systems, 3. Engineering / Scientific software - © This softwar category has a wide range of programs from astronomy to valcanology, from automatic stress analysis to space shuttle orbital dynamics and from molecular biology to automated manufacturing. © This software is based on complex numeric ‘computations. 4. Embedded software - © This category consists of program that can side within a product or system. © Such software can be used to implement and control features and functions for the end-user and for the system itself 5. Web applications - © Web application software consists of various web pages that can be retrieved by a browser, © The web pages can be developed using programming languages like JAVA, PERL, CG, HIML, DHTML Artificial inteligence software - © This kind of software is based on knowledge based expert systems. © ‘Typically, this software is useful in robotics, expert systems, image and voice recognition, artifical neural networks, theorem proving and ‘game playing, Software Development Process Board Questions 1. State and explain any four types of software. 2. Describe any four categories of sofware. 3. What is software ? What is embedded software ? 4. Elatorate any six types of software considering the Mie ATT 5 | Software Development Framework + The Software Development Life Cycle (SDLC) is the logical process of developing any system. +Using SDLC one can develop a system which Satisfies customer needs, can be developed within the predefined schedule and cost + Normally the system analyst makes use of software development life cycle for developing the information systems. ‘* The SDLC is a linear of sequential model in which ‘output of previous phase is given as input to next subsequent stage. ++ Various phases of software development life cyde are - (Refer Fig, 15.1) 1. Feasibility study : It is initial phase of software development framework In this phase, it is decided whether to built the system or no 2 Requirement gathering and analysis : The basic requirements of the software project are identified and analysed in this phase. Fig. 1.5.1 Phases in SDLC T TEOMA PURIEATONT Ang at Software Engheering Software Development Process 3. Design : The model of the software system is prepared in this phase. 4. Coding or implementation : Using the software design the coding, is done in this phase. Thus the implementation model is prepared. 5. Testing and maintenance : The code is tested and modified if required, [1] ‘eters Fimnass Panos COL Sau sacl camo toga loca eae # As shown in Fig. 16.1, the software process. is characterized by process framework activities, task sets and umbrella activities Fig. 1.6.1 Software process framework Process framework activities + Communication © By communicating customer gathering is done. Planning - Establishes engineering work plan, describes technical risks, lists resource requirements, work products produced and defines work schedule. + Modeling - The software model is prepared by : Analysis of requirements Design requirement ‘*Construction - The software design is mapped into a code by : © Code generation «Testing Deployment - The software delivered for customer evaluation and feedback is obtained. ‘Task sets - The task set defines the actual work done in onder 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 an 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. 3 Software quality assurance ~ These are activities required to maintain software quality 4. Formal technical reviews - It is required to assess engineering work products to uncover and remove errors before they propagate to next activity. 5. Software configuration management - Managing, of configuration process 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, T TEOMA AMLEATONT An Software Engheering Board Questions: 1, What do you mean by process framework ? Explain with suitable diagram. 2. Explain the basic process framework activities. re + Definition of process model : The process model ‘can be defined as the abstract representation of process. The appropriate process model can be chosen based on abstract representation of process. +The software process model is also known as Software Development Life Cycle (SDLC) model oF software paradigm. + Various types of process models are - Fig. 1.7.1 Types of process models Perspective Process Model 17.1.1] Waterfall Mode! +The waterfall model is also called as ‘inear-sequential model’ or ‘classic life eyele moder Software Development Process ‘The software development starts with requirements ‘gathering phase. Then progwsses through analysis, design, coding, testing and maintenance. ‘*Fig, 172 illustrates waterfall model. ‘+n requirement gathering and analysis phase the basic requirements of the system must be understood by software engineer. *The design is an intermediate step between requirements analysis and coding. Design focuses ‘on program attributes such as -i) Data structure li) Software architecture iv) Algorithmic details. + Coding is a step in which design is translated into machine-readable form, Programs are created in this phase. Interface representation ‘Testing begins when coding is done. The purpose of testing is to uncover errors, fix the bugs and meet the customer requirements ‘+ Maintenance is the longest life cycle phase. When the system is installed and put in practical use then error may get introduced, correcting such errors and putting it in use is the majr purpose of maintenance activity. Similarly, enhancing system's services as new requirements are discovered is again maintenance of the system. Advantages of watertall model 1. The waterfall model is simple to implement. 2. For implementation of small systems waterfall ‘model is useful Fig. 1.7.2 Waterfall model TECONICAL PUBLICATIONS" Anup rat roma Software Engheering Disadvantages of waterfall model 1. It is difficult to follow the sequential flow in software development process. If some changes are made at some phases then it may eause 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. 3. The customer can see the working model of the project only at the end. After reviewing of the working model; if the customer gets dissatisf then it causes serious problems. 1.7.12] RAD Model (incremental Mode) +The RAD Model is a type of incremental process model in which there is extremely short development cycle. + When the requirements are fully understood and the component based construction approach is adopted then the RAD model is used. # Using the RAD model the fully functional system ‘can be developed within 60 to 90 days. + Various phases in RAD are Requirements Gathering, Analysis and Planning, Design, Build or ‘Construction and finally Deployment. Software Development Process ‘+Multiple teams work on developing the software system using RAD model parallely. © In the requirements gathering phase the developers communicate with the users of the system and understand the business process and requirements of the software system. © During analysis and planning phase, the analysis on the gathered requirements is made and a planning for various software development activities is done, © During the design phase various models are created. Those models are business model, data ‘model and process model. © The build is an activity in which working code is generated. This code is well tested by its team. The functionalities developed by all the teams are integrated to form a whole. © Finally the deployment of all the software components (created by various teams working con the project) is carried out. (Refer Fig, 173) Advantages of RAD Mode! (1) Faster development cycle. 2) Visualization of related routines periodically. 3) Encourages user involvement. (4) Low maintenance cost ( \ 201090 days poiod —$§$a} J Fig. 1.7.3 RAD model T TEOMA ALARM An Software Engheering 17 Software Development Process Disadvantages of RAD Model | (2) It has reduced scalability. (2) Not appropriate when technical risks are high. @) This model requires heavily committed developer and customers. If commitment is lacking then RAD projects will fail. Difference _ between Incremental Model seniegiene ie wecenty defeed_ [Ee 2 | There is ro customer ‘ita exh nce interaction until the customer can take. last of the of the icmrage _ merel ingen neal Mele re Less human resource is oe ee 47.4.3] Spiral Mode! ‘This model possess the iterative nature of prototyping model and controlled and systematic approaches of the linear sequential model. ‘This model gives efficient development of incremental versions of software. In this model, the software is developed in series of increments. ‘The sprial 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.7.4. ‘*Spiral 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 bbe identified or rectified at each such level. ‘sn 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. Fig. 1.7.4 Spiral model TECHNICAL PUBLICATIONS. An pir howe Software Engheering fe Solteare Development Process ‘= During planning phase, the cast and schedule of software can be planned and adjusted based on feedback obtained from customer evaluation. ‘+n spital model, project entry point axis is defined, This axis represents starting point for different types of projects ‘+ For instance, concept development project will start at core of spiral and will continue along the spiral path. If the concept has to be developed into actual project then at entry point 2 the product development process starts. Hence entry point 2 is «alled product development project entry point. The development of the project can be carried out in iterations. ‘+ The task regions can be described as : i) Customer communication - In this region, it is suggested to establish customer communication, fi) Planning - All planning activities are carried out in order to define resources time line and other project related activities. fii) Risk analysis - The tasks required to calculate technical and management risks are carried out. iv) Engineering - In this task region, tasks required to build one or more representations of applications are carried out. VW) Construct and release - All the necessary tasks ‘required to construct, test, install the application are conducted. Some tasks that are required to provide user support are also carried out in this task region. vi) Customer evaluation = Customer's feedback is cbiained and based on customer evaluation required tasks are performed and implemented at installation stage. ‘+n each region, number of work tasks are carried ‘out depending upon the characteristics 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 cartied out. ‘+n spiral model the software engineering team moves around the spiral in a clockwise direction beginning at the core. Advantages of spiral model 1, This model has iterative nature. Hence requirements can be identified at new iteration, 2 Requirement changes can be made at every stage ‘of new version, 3. Risks can be identified and reduced before they Bet problematic. 4. The working model is available to the customer at certain stage of iteration. Disadvantages of spiral mode! 1, This model is based on customer communication, If the communication is not proper then the Product being developed is not up to the mark. It demands considerable risk assessment. If the risk assessment is done properly then only successful product can be obtained. T TECHNICAL PUBLICATIONS. An ip Birt howindge Software Engheering 19 Software Development Process 7.2 | Specialized Process Model 17.21] Component Based Development «The commercial off-the-shelves components that are developed by the vendors aw used during the software built, + These components have specialized targeted functionalities and well defined interfaces. Hence it is easy to integrate these components into the existing software. ‘+ The component based development model makes use of various characteristics of spiral model. This model is evolutionary in nature. That means the necessary changes can be made in the software during the each iteration of software development cycle. ‘+ Before beginning the modeling and construction activity of software development the candidate component must be searched and analyzed. The compenents can be simple functions or can be object oriented classes or methods. + Following steps are applied for component based development - ‘Identify the component based products and analyze them for fitting in the existing application domain, + Analyze the component integration issues. + Design the software architecture to accommodate the components « Integrate the components into the software architecture + Conduct comprehensive testing for the developed software. + Software reusability is the major advantage of component based development, + The reusability reduces the development cycle time and overall cost. 17.22] Formal Methods Model += This model consists of the set of activities in which the formal mathematical specification is used # The software engineers specify, develop and test the computer based systems using the mathematical notations. The notations are specified within the formal methods, + Cleanroom software engineering makes use of the formal method approach. + The advantage of using formal methods modd is that it overcomes many problems that we encounter in traditional software process models. Ambiguity, incompleteness and inconsistency are those problems that can be overcome if we use formal methods model, oy oe Fig. 1.7.5 Formal methods model ‘+The formal methods model offers defect-free software. However there are some drawbacks of this model which resists it from getting used widely. These drawbacks are + The formal methods model is time consuming and expensive. T TEOMA AMLCATONT Ap re Software Engheering 110 + For using this model, the developers need the strong mathematical background or some extensive training, If this model is chosen for development then the ‘communication with customer becomes very difficult Board Questions 1. Differentiate between waterfall madel and incremental model 2. Write four drawback of RAD model 3. In which situation RAD model is applicatte ? Give its advantages and disadvantages. 4. Explain spiral model with neat diagram. 5. With neat diagram, explain RAD model with its advantages and disadoantages. (2 exch) 6. Explain the waterfall model. Draw the neat labeled diagram of spiral model and list two disadvantages of spiral model Agile Sofware Development +The agile processes are the light-weight methods 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 make use of iterative method. # The aim of agile process is to deliver the working model of software quickly to the customer. Agile Principles + There are famous 12 principles used as agility principles - 1. Satisfy the customer by early and continuous delivery of valuable software, 2 The changes in the requirements must be accommodated. Even though the changes occur Software Development Process late in the software development process, the agile process should help to accommodate them, Deliver working software quite often, Within the shorter time span deliver the working unit. 4. Business people and developers. must work together throughput the project. 5. Motivate the people who are building the projects. Provide the environment and support to the development team and trust them for the job to be done, 6 The working softwane is the primary measure of the progress of the software development. 7. The agile software development approach Promote the constant project development The constant speed for the development of the product must be maintained & To enhance the agility there should be continuous technical excellence. 9 Proper attention to be given to technical excellence and good design. 10, Simplicity must be maintained while developing, the project using this approach. 11. The teams must be the self-organizing team for getting best architecture, requirements and design. 12. At regular intervals the team thinks over the issue of becoming effective. After the careful review the team members adjusts their behavior accordingly 1.8.1 | Agile Process and its Importance Agile process is based on following assumptions about software projects 1. It is difficult to predict the software requirements in advance. Similarly the customer priority often ‘get changed. 2. It is difficult to predict how much design is necessary before the implementation. 3, All the software development activities such as analysis, design, construction and testing are just difficult to predict. T TENA PURIEATONT Ang Wa i Software Engen Characteristics of agile process are - 1. Agile processes must be adaptable to technical and environmental changes. That means if any technological changes occur, then the agile process must accommodate it. 2 The development of agile processes must be incremental. That means, in each development the increment should contain some functionality that can be tested and verified by customer. 3. The customer feedback must be used to create the next increment of the process. 4. The software increment must be delivered in short span of time, 5. It must be iterative, so that each inerement can be evaluated regularly. Features of agile process ‘The features of agile process models The key features of an agile process model can be summarised as follows + The software itself is the important measure of the team’s progress, rather than documentation, +The development team has autonomy to determine how to structure and handle the development work. * Changes can be easily adapted. + Customers can more easily examine the software and provide feedback Merits : 1) Customer satisfaction can be attained by rapid and continuous delivery of useful software. 2) Customer, developer and tester interact with each ‘other during software development process. 3) Continuous attention can be given for excellent technical design and software quality. 4) Even late changes in requirements canbe accommodated Demerits : 1) There is lack of emphasis on necessary designing and documentation during software development process. Software Development Process 2) The project can easily get off the track if customer is not clear about his requirements. Difference between Prescriptive Process Model and Agile Process Model 1s product rirted It people oriented procs model ‘model Process Models ‘There are various agile process models - 1, Extreme Programming Adaptive Software Development Dynamic System Development Method(DSDM) Scrum Crystal 1.8.2 | Extreme Programming Extreme Programming (XP) is one of the best known, agile methods. The extreme programming approach was suggested by Kent Beck in 2000. The extreme programming process is explained as follows - sp RP T TEOMA PURIEATONT Ang at Software Engheering 1 Software Development Process +Customer specifies and priorities the system requirements. Customer becomes one of the important members of development team. The developer and customer together prepare a story-card in which customer needs are mentioned. +The developer team then aims to implement the scenarias in the story-card * After developing the story-card the development team breaks down the total work in small tasks. ‘The efforts and the estimated resources required for these tasks are estimated. +The customer priorities the stories for implementation. If the requirement changes then sometimes unimplemented stories have to be discarded. Then release the complete software in ‘small and frequent releases. + For accommodating new changes, new story-card must be developed. + Evaluate the system along with the customer, ‘This process is demonstrated by the following, Fig. 18.1, = Pare] mae c= = = Fig. 1.8.1 Extreme programming release cycle 1.8.3 | Adaptive Software Development +The adaptive software development approach was proposed by Jim Highsmith. This approach is useful in building the complex software systems using iterative apporach +The focus of this method is on working in collaboration and team self organization. “eal ‘The life cycle of ASD consists of three phases of software development and those are - 1, Speculation 2. Collaboration 3. Learning. 1. Speculation: This is an initial phase of the adaptive software development process. In this phase the adaptive eycle planning is conducted, In this cycle planning mainly the types of information is used such as - Customer's mission statement, project constraints (delivery date, user description, budgets and soon) and basic requirements of the project. 2 Collaboration: The motivated people work in collaboration to develop the desired. software Product. In this phase collaboration among the members of development team is a key factor. For successful collaboration and coordination it is necessary to have following qualities in every individual - © Assist each other without resentment © Work hard. © Posses the required skill set. © Communicate problems and help each other to accomplish the given task © Criticize without any hate 3. Learning : As the team members go on developing the components, the emphasize is on earning new skills and techniques. There are three ways by which the team members learn - © Focus groups : The feedback from the end-users is obtained about the software component being developed. Thus direct feedback about the developed component can be obtained. © Formal technical review : This review for software components is conducted for better quality © Postmortems : The team analyses its own. performance and makes appropriate improvements. = =| == Fig. 1.8.2 Adaptive software development life cyclo 1.8.4 | SCRUM + SCRUM is an agile process model which is used for developing the complex software systems. T TEOMA AMLEATONT An Software Engheering 1 a Software Development Process + It is a lightweight process framework that can be used to manage and control the software development using iterative and incremental approach. Here the term lightweight means the ‘overhead of the process is kept as small as possible in order to maximize productive time. + This model is developed by Jeff Sutherland and Ken Schwaber in 1995, Principles: + Various principles using which the SCRUM works are as given below ~ 1, There are small working teams on the software development projects. Due to this there is maximum — communication and minimum overhead. 2 The tasks of people must be partitioned into ‘small and clean packets or pastitions. 3. The process must accommodate the technical oF business changes if they occur. 4. The process should produce software increments. These increments must be inspected, tested, documented and built on. 5. During the product building the constant testing and documentation must be conducted. 6 ‘The SCRUM process must produce the working, model of the product whenever demanded oF Development Activities In SCRUM emphasize is on software process pattern. ‘The software process pattern defines a set of development activities. Refer Fig. 183. Various development activities in SCRUM are - 1, Backlog : It is basically a list of project requirements or features that must be provided to the customer. The items can be included in the backlog list at any time. The product manager analyses this list and updates the priorities as per the requirements. 2 Sprint : These are the work units that are needed to achieve the requirements mentioned in the backlogs. Typically the sprints have fixed duration or time-box (typically of 2 to 4 weeks). ‘Thus sprints allow the team members to work in stable and short-term environment. 3. Meetings : These are 15 minutes daily meetings to report the completed activities, obstacles and plan for next activities. Following aw three questions that are mainly discussed during. the meetings i) What are the tasks done since last meeting, ? 4) What are the issues (obstacles) that team is facing ? ) What are the next activities that are planned ? 4 Demo : During this phase, the software increment is delivered to the customer. The required. implemented functionality which is demonstrated + Various development activities (requirements 0 the customer: Note at denn Scams orr'only analysis, design, evolution and delivery) are guided implemented functionalities and not all the by SCRUM principles. planned functionalities (and yet to get implemented) of the software product. “anew 2006 im = Pine =, Pree mae = ore } Fig. 1.8.3 SCRUM workflow activites TECONICAL PUBLICATIONS" Anup rat roma Software Engineering Roles : 1. Scrum Master = The Scrum master leads the meeting and analyses the response of each team member. The potential problems are discussed and solved in the meeting with the help of master. 2. Team Members - These are the persons working in a team to develop the software solutions. Advantages and Disadvantages : Advantage: 1. SCRUM model brings transparency in project development status. 2. It provides flexibility towards the changes. 3 There iS improved communication, minimum ‘overhead in development process 4. The productivity can be improved. Disadvantages : 1. Some decisions are hard to track in fixed time span. 2 There are problems to deal with non-functional requirements of the system, Dynamic System Development Method ijosom) In this agile method, the project deadline is met using, the incremental prototyping approach. This is an ative development process. The Dynamic System Development Method (DSDM) consortium has defined an agile process moda called DSDM life cycle. Various phases in this life cycle model aw as follows - 1. Feasibility study : By analyzing the business requirements and constraints the viability of thee application is determined in this phase. 2 Business study : ‘The functional and. informational requirements are identified and then the business value of the application is determined. The basic application architecture is decided in this phase. Software Developnent Process 3. Functional model iteration ; The incremental approach is adopted for development. The basic functionalities are demonstrated to the customer by building the suitable increments. The intention of iterative cycle is to gather additional requirements by eliciting the requirements from the customer as each prototype is being developed. 4. Design and build iteration : Each prototype is revisited during the functional model iteration to ensure that the business requirements are satisfied by each software component. Sometimes if possible, the design and build activities can be carried out in parallel. 5. Implementation : In this phase, the software increment is placed in the working environment, If changes are suggested oF if the end-user feels it incomplete then the increment is placed in iteration for further improvement. ‘The DSDM ean be combined with XP method or ASD concepts to ereate a combination model. 1.86 | Crystal *Cockburn and Highsmith suggested the crystal family of agile methods, +The primary goal of this method is to deliver useful and working software ‘ln this model, a set of methodologies are defined Which contains the core elements that are common to all. These methodologies also contain rales, process patterns, work products and practice that are unique to each, ‘Thus the crystal family is actually a set of agile processes that are useful for different types of projects. The agile team has to select the memebers ‘of the enustal family that is most approapriate for their ongoing project and environment. Board Questions: 1. Describe Agile process madels in detail LE s Semeser2s, Rares 4 9 2. Explain the features of Agile software development “approach. T TEOMA PURIEATONT Ane at rit Software Engheeting Las Software Development Process 3. Differentiate bet ‘and Agile Process Model (any four points) CE 4 Explain the ten scun, PTs 5 Whet sogile proces? TT veen Prescriptive Process Model 1.9 | Selection Criteria for Software Process: ‘Model Following table particular process model can be used shows the situations in which Suggested model ‘© Ifa small project is to be ‘implemented. ME the mguimments of the wien Waterfall model + Eiatng manual oyster hm be sumed ‘If there is no need for customer 4¢ When project nsquirements are not clear. '¢ The system will be operated by novice users, ‘¢ The GUL of the project is very important. '* Delivery of the project is expected within a short period of time. «The risk of long project is not affordable. ‘» Requirements are not known and will be knoven only with time. «2 Project is of large size. ‘¢ When the requirements are not properly known: ‘+ For the systems in which customer involvement is must. ‘© The GUI of propet is important. 1 Quick delivery ofthe product is Board Question 1. What is Waterfall Model ? State the practical situations in which it can be used. goo T TEMA PUMiCARONE (Ane frat ria Software Engheering 116 Software Development Process T TEOMA AMLCATONT An UNIT Software Requirement Engineering 2.1 | Software Engineering Practices and its Importance Definition : Software engineering practices includes concepts, principles, methods and tools that must be considered for planning and development of software system. Importance 1) By following software every concerned entity gets involved in software development process, engineering practices, 2) The software engineering practices detailed insight for process provide software development 3) It acknowledges the software engineer about the Principles that must be used during the software development Essence of Software Engineering Practice : + The problem solving activity is normally based on following four steps 1. Understanding of the problem (Communication and requirement analysis) Planning for possible solution (Modelling and design). 3. Execute the plan (Code generation), 4. Check the accuracy of the solution (Testing and ‘quality assurance), [22] core Principles + David Hooker proposed seven com principles for software engineering practice. These are as follows Principle 1. Reason it all Exists: The software system that you are going to develop must give If your development is not going to add any value to its users then don't develop such value to its users. system. Principle 2. Keep it Simple, Stupid (KISS) : The software design must be simple, easy for understanding and easy to maintain, Principle 3. Maintain the Vision: There should be dlear vision for the software system to be built. The clear vision about the system helps to develop it without any ambiguity. Principle 4. What you will Produce, others will Consume : ‘The software system that ' you develop be used by designers, programmers, testers and so on. So whenever you develop the system, develop in such a way that your job will be easier for them to handle. will users, software Principle 5. Be Open to the Future: Develop a system in such a way that it will have longer life time. Develop the system in such a manner that it will adapt any changes comfortably. Never design the system for specific problems only, rather create it for general purposes has The Principle 6. Plan ahead for Reuse : Reusability got vital importance in software industry reusability can be achieved using the approaches like ‘object oriented programming. The software must be developed and documented in such a way that reusability can be easier one, Principle 7. Think : are going to develop and acquire the required Think about the system that you Software Engheering 2-2 knowledge. Thoughtfully, apply above six principles during the software development process. Board Questions 1. State and describe various core principles of software engineering. [sere winter i516, nar 8) 2. List come principle of Softoare Engineering. [23] communication Practices CA & carried out in order to understand the customer requirements. Fallowing are the principles that are used to make the communication effective - + Communication Principle 1 Listen; It is important to listen the carefully. Ask for the appropriately. Never interrupt hinvher annoyingly during the narration, customer clarifications. Principle 2 - Prepare for communication : Do research to understand the business domain, If you are conducting the meeting then prepare the agenda before the meeting, Principle 3 - Have facilitator for communication : The facilitator or a lender is required for the communication for three reasons. Firstly to move the conversation in productive direction, secondly to resolve any conilicts and thirdly to ensure that the designated principles and standards are being followed. Principle 4 - Have face-to-face communication : The face to face communication is important to have ‘effective communication, Principle 5 - Take notes and document the decisions : It is important to. note down the important points and decisions made during. the communication Principle 6 - Strive for collaborations : The collective Knowledge of the members of the team is combined to understand the system. collaboration which help the team members in This makes a small Software Requtemeat Engineering deciding the goals of the software system being developed. Principle 7 - Stay focused : During the ‘communication and discussion, it is possible to switch frequently from one topic to another. The leader o facilitator of the communication must keep the communication focused and must make every topic modular. The modular discussion means leave ‘one topic only after resolving the issues within in it and then only switch to another topic. Principle 8 - Make pictorial representation : If something is unclear, then make a drawing or sketch of it for understanding Principle 9 - Move on: During the communication just_move on by resolving the issues and by understanding the things. Principle 10 - Negotiate developers and custo There are times when the need to negotiate on some fof the issues such as some functionalities, delivery date, features priorities and so on. Board Questions 1. Briefly describe the principles of cmetunication State and describe six principles of commumication praaives. Co 3, What are commiction principles? Espn their meaning. [24] Ptanning Practices PSST Suns is 75 nah 8] Planning is an activity that inchides the set of management and technical practices that software has to follow in definite Ptinciples of planning are - direction. Various Principle 1 - Understand the scope of the project : The scope of the project help the software team what is the goal of development. . TECONICAL PUBLICATIONS” Anup Wat roma Software Engheering Principle 2 - Make the planning by involving the customer : Customers specify what they exactly want from the software system. The developer can negotiate order of delivery, functionalities, cost and so on, Hence customers involvement in the project is must some unwalistic Principle 3 - Planning activity should be iterative : erations help the developer to accommodate the changes in the system plan. Principle 4 - Make estimation based on the knowledge : Estimation of the project represents the efforts, and duration based on understanding of the work. But it is always vague. Principle 5 - Consider risk while defining the plan : The project pln must be flexible enough to accommodate one or more risks Principle 6 - Be realistic : Software development can not be 100 % perfect, there can be more or less ambiguities and omissions, budgets and schedule may vary, developers may make mistakes and so on. Such things might occur during the planning of the system, Principle 7 - Adjust granularity according to plan : Granularity means how much detailed is your project plan, The fine granularity plan provides more work plan details planed relatively short time increment. ‘On the other hand, the coarse granular plan provide broader work task planed over long period, The plan must be flexible enough for making the adjustments about the granularity of the project. Principle 8 - Ensure the quality : The plan help the software team to induce quality in their development. Principle 9 - Describe the accommodated changes The plan must help the software team to induce required changes in their development. Principle 10 - Track the plan frequently and make the changes as per the requirements : The — project plan must be adjusted frequently. Software Requtemeat Engineering Board Questions 1, Describe eight principles of good planning. ho 2. Explain principles of planing software engineering (any four) CT [25] Modeling Practices AIS +Models are created for understanding, the system. During software development, there are two kinds ‘of models that are developed - analysis model and design model, (1) Analysis Modeling Principles Following are analysis modeling principles - 1. The information domain of the problem must be represented and understood: The information domain represents the data that flows in and out of the system. For designing the analysis model it is necessary to understand this, data flow 2 The functionality of the software must be performed : There are various types off the functionality that must be present in the system. Some functions can be directly beneficial to the user. Some functions are control functions, some functions are for transforming the data and so 3. The behavior of the software must be represented by the model : By crating appropriate model the behavior of the computer system for the input submitted by the user, interaction of the system with the external system are represented by the software. 4. The model should be created in such a way that it represents the details of the software in layered or hierarchical manner : Software systems are usually created to solve the complex problems. The large and camplex problems are solved using divide and conquer strategy. These sub-problems are relatively easy to understand. This process of dividing the problems into smaller sub-problems is called partitioning. 5. The analysis task must move from basic information to the implementation of the concept : Before creating the analysis model the information gathered is from users’ point of practices in . TECONICAL PUBLICATIONS” Anup Wat roma Software Engheering view. This information should be transformed in such a way that the implementation of the concept using the computer based system. (2) Design Modeling Principles Following are design modeling principles - Analysis model must be used to create design model : The analysis model describes the information domain, system behavior, user visible functionalities and so on. The design model translates this information into the system. architecture, Hence the elements of design model should be traceable to analysis model 2 Consider the architecture of the system to be built : The skeleton of the system should be prepared before creating the actual design of the system. For creating such architecture the information present in the analysis model is used, 3. Design of data is an important activity : The data design is an important element of the architectural design. It represents the flow of information 4. Interfaces must be designed carefully : The interfaces are important for communication of two components and communication with the extemal environment. Hence these need to be designed carefully. User interface designs must be as per the needs : User interfaces basically assist the users to interact with the system via user interfaces Hence the design of user interface must be by considering the users needs. 6 Component level design must be functionally independent : Functional independence is a ‘quality that indicates the single mindedness of software component. Ideally every component must focus on one functionality at a time, This is called cohesiveness of the components, During, component level design high cohesiveness (functionally independence) is required. 7. Components must be loosely coupled : If the components are tightly coupled then err propagation might get increased. The maintaining such systems become difficult. This denotes low coupling property of design, Design representations must be easy to tendemtand : The software design te used to fetes Ob Sick, Hace inowt be ay bo ‘understand so that implementation of the system can be effectively done. 9, Design development must be iterative : The iterative development of the design model will refine the work and errors can be corrected in each iteration. But each after each iteration it becomes difficult to keep the software design i Board Question 1. Explain modeling pact fv ste engineering with princes CATES 26 | Construction Practices +The construction practices. are based on - Preparation principles, coding principles and validation. principles. (1) Proparation principles ‘These are some important principles that software developers must follow before writing the code. 1. Firstly, understand the problem for which the system is designed. Know the basic design principles and concepts. Choose appropriate programming language for coding. 4. Select such a programming environment which is convenient to work. 5. Prepare the set of unit tests for each component of the code. (2) Coding principles ‘These are some important principles that software developers must follow while writing the code. 1. Adopt structured or modular programming approach for the algorithm, 2 Choose the appropriate data structures. T TEOMA AMLEATONT An Software Engheering 3. By understanding the system architecture, create appropriate intertaces, 4. Keep conditional logic very simple. Create the nested loop in such a way that they ‘ean be tested easily 6. Give meaningful variable names. Make the code documented by appropriate comment statements within i adding & Make use of indentation and blank lines in between the code so that appropriate visual layout of the code can be created. (3) Validation principles These are some important principles that software developers must follow after completion of writing the code. 1. Review the code thoroughly 2. Perform unit tests and correct the errors. 3. Refactor the code. Board Question 1, What is software coding ? State thre principles of cade vatidation. STATE [22] sonware Deployment OEE A Poiskg lg hie Tecaeos Team tau catia cong Sartcl ous coh Dane Supp! and 8h Redhace fini he ie A jehtle Ualke We iad tabs apne’ ng Bios i; Mategl oc PSM es emi pene 4 tsi can consent eaped bs Soon oe ts caivead nllfars podae 16 shal abbasea areal 9A festa So bach of ee prods 2. The delivery package must be assembled and well tested : Provide CD-ROM or other media to the customer containing all the executables of the software components. 3. The support service must be ready before delivery of the software system : Assist the user to handle the software system Software Requtemeat Engineering approptiately. Moreover, if any problem or query occurs then help the end-user to solve it 4. Appropriate instructional material must be given to the end user : P: instruction manuals, help material, training aids, demo and so on for handl properly 5. Do not deliver erroneous software : Never rrovide the user with 1g the system provide the low quality or erroneous software to the customers, Board Questions 1. Explain deployment principle 2. What is Software deployment ? State the principles to be followed while preparing to deliver oo ATT 3. What is meant by software deployment ? the software 2.8 | Requirement Gathering and Analysis +Requirement engineering is the process of establishing the services that the customer requires from a system. And the constraints under which it ‘operates and is developed. Requirement Engineering Tasks + Requirement engineering isthe characterized for achieving following goals - ‘© Understanding customer requirements and their process needs ‘© Analyzing the feasibility of the requirement ‘© Negotiating the reasonable solutions ‘© Specification of an unambiguous solution, ‘© Managing all the requirements of the project ‘© Finally transforming the requirements into the ‘operational systems + Requirement following seven distinct functions - engineering process performs T TEOMA PURIEATONT Ang a 4. Software Engheering Sofware Reguremeat Engineering [———— meweton 2.8.3 | Elaboration e + Elaboration is an activity in which the information Sees about the mquirements is expanded and tebe ‘This information is gained dusing inception and elicitation. ecurement (migineerng ——e} > Negation | > speatncaton }__—> vasaation |___ rrtremant managamesd Fig. 2.8:1 Requirement engineering tasks Let us now discuss these tasks in detail - 2.8.1 | Inception * The inception means specifying the beginning of the software project. Most of the software projects {get started due to business requirements. There may be potential demand from the market for a particular product and then the specific software project needs to be developed. + There exist several stakeholders who define the business ideas. Stakeholders mean an entity that takes active participation in project development. In software project development, the stakeholders that are responsible for defining the ideas are business managers, marketing people, product managers and so on. Their role is to do rough feasibility study and to identify the scope of the project. + During the inception a set of context free questions is discussed. The purpose of inception is to - 1. Establish the basic understanding of the project 2. Find out all possible solutions and to identify the nature of the solution. 3, Establish an effective communication between developer and the customer, 2.8.2 | Elicitation * Before the requirements can be analyzed and modelled they must undergo through the process of elicitation process. Requirements elicitation means requirements discovery. Requirements elicitation is very difficult task ‘= The goal of elaboration activity is to prepare a technical model of software functions, features and constraints. 2.8.4 | Negotiation ‘*Sometimes customer may demand for more than that is achieved or there are certain situations in which customer demands for something which cannot be achieved in limited business resources. To handle such situations requirement engineers must convince the customers or end users by solving various conflicts. For that purpose, requirement engineers must ask the customers and stakeholders to rank their requirements and then Priority of these requirements is decided. Using iterative approach some requirements are liminated, combined or modified. This process continues until the users’ satisfaction is achieved. 2.855 | Specification +A. specification can be a written document, mathematical or graphical model, collection of use case scenarios or may be the prototypes. ‘+ Thewe is a need to develop a standard specification in which requirements are presented in consistent and understandable manner. ‘For a large system it is always better to develop the specification using natural language and in a waitten document form. The use of graphical models is more useful for specifying the requirements. ‘*Specification is the final work product of requirement engineering process. It describes the functions, constraints and performance of computer based systems, 2.866 | Validation ‘+Requirement Validation is an activity in which requirement specification is analyzed in order to ensure that the requirements are specified unambiguously. If any inconsistencies, omissions T TEOMA AMLEATONT An Software Engheering 2.7 and errors are identified then those are corrected oF modified during the validation, +The most commonly used requirement validation mechanism is Formal Technical Review (FTR). In FIR, the review team validates the software requirements. The review consists of rexjuirement engineers, customers, end users, marketing person and so on. This review team basically identifies conflicting requirements, inconstandes or unrealistic requirements 2.8.7 | Requirement Management Definition : Requirements management is the process ‘of managing changing requirements during the team requirements engineering process and system development. ‘Why requirements get change 7 + Requirements are always incomplete and inconsistent. New requirements occur during the process as business needs change and a better understanding of the system is developed + System customers may specify the requirements from business perspective that can conflict with end User requirements. + During the development of the system, its business and the technical environment may get changed. | Board Questions: 1. List seven task of requirement engineering. 2. Wh reference to reguirement engineering, explain 2 Inception andi) Elication Prserr iats na) 3. Explain flouting rquirementsengnering tasks 1 Negotiation W) Specification 4, What ane major tasks of requirement engineering ? Prssre wat7 nas 8| 5 Explain following requtements of enginering tua : 0 Negotiation i) Vallation Software Requtemeat Engineering 2.9 | Types of Requirements Functional and Non-Functional Requirements. +Software system requirements can be dassified as functional and non functional requirements. 2.9.1 | Functional Requirements ‘= Purpose : Functional requirements should describe all the requived functionality or system services. ‘The customer should provide statement of service It should be clear how the system should react to particular inputs and how a particular system should behave in particular situation, ‘*Functional requirements are heavily dependent upon the type of software, expected users and the type of system where the software is used. ‘+Functional user requirements may be high-level statements of what the system should do but functional system requirements should describe the system services in detail. +For example : Consider a library system in which there is a single interface provided to multiple databases. These databases are collection of articles from different libraries. A user can search for, download and print these articles for a personal study. ‘+From this example we can obtain functional requirements as, 1, The user shall be able to search either all of the initial set of databases or select a subset from it 2. The system shall provide appropriate viewers for the user to read documents in the document store. 3. A unique identifier (ORDER ID) should be allocated to every onder. This identifier can be copied by the user to the account's permanent storage area. 293.1] Problems Associated with Requirements + Requirements imprecision 1, Problems arise when rajuirements are not precisely stated. 2. Ambiguous requirements may be interpreted in different ways by developers and users 3. Consider meaning of term ‘appropriate viewers’ TECONICAL PUBLICATIONS” Anup Wat roma Software Engheering ‘Sofware Reguremeat Engieriy ‘+ User intention - Special purpose viewer for each different document type: + Developer interpretation - Provide a text viewer that shows the contents of the document, + Requirements completeness and consistency - ‘The requirements should be both complete and consistent. Complete means they should include descriptions of all facilities required. Consistent means there should be no conflicts or contradictions in the descriptions of the system facilities. Actually in practice, it is impossible to produce a ‘complete and consistent requirements document. 2.9.2 | Non Functional Requirements + Purpose : The non functional requirements define ‘system properties and constraints. Various properties of a system can be : Reliability, response time, storage requirements. And ‘constraints of the system can be : Input and output device capability, system representations ete. + Process requirements may also specify programming language or development method. + Non functional quirements aw more critical than functional requirements. If the non functional requirements do not meet then the complete system is of no use. 292.1] Types of Non Functional Requirements ‘The classification of non functional requirements is as given in Fig. 29.1 Product requirements + These requirements specify how a delivered product should behave ina particular way. For instance: execution speed, reliability. Organizational requirements. ‘+The requirements which are consequences of ‘organizational policies and procedures come under this category. For instance : Process standards used implementation requirements, External requirements + These requirements arise due to the factors that are external to the system and its development process. For instance : Interoperability requirements, legislative requirements. Performance requirements #These requirements specify the performance or durability of its functioning. For instance : Response to various events at particular instance. ‘+n short, non functional requirements arise through ) User needs li) Because of budget constraints iit) Organizational policies iv) The need for interoperability with other software or hardware systems / \ Fig. 2.9.1 Types of non functional requirement T TEOMA AMLCATONT An Software Engheering Software Requtemeat Engineering ¥) Because of external factors such as safety regulations. + Metrics used for specifying the non functional requirements ‘Speed Events per response time proceed tranaations prr second Sze Kilobytes Reliability Mean time to failure. Rate of failure. a ‘Occurrence availability. “Robustness Time to restart after failure. Probability of events causing fllure, [Number of target statements Ex 291: Enlist various functional and now functional requirements for the Bank ATM system. Sol. : Functional requirements 1. ‘There should be the facility for the customer to insert a card. ‘The system should first validate card and PIN. 3. The system should allow the customer to deposit amount in the bank. 4. The system should dispense the cash on withdrawal. 5. The system should provide the printout for the transaction. 6 The system should make the record of the transactions made by particular customer, 7. On invalid PIN entry for three times the cant should be retained by the system. & The cash withdrawal is allowed in multiple of 100. 9 The cash deposition is allowed in multiple of 100. ‘The customer is allowed to transfer amount between the two accounts. ‘The customer is allowed to know the balance enquiry. ‘The customer is allowed to get the printout for desired transaction. 10, 2, 13, The system should be efficient, Non functional requirements, 1. Each of the transaction should be made within 60) seconds. If the time limit is exceeded, then cancel the transaction automaticaly. If there is no response from the bank computer after request is made within the minutes then the card is rected with error message. 3. The bank dispenses money only after the processing of withdrawal from the bank. That means if sufficient fund is available in user's account then only the withdrawal request is processed. 4. Each bank should process the transactions from several ATM centers at the same time. 5. The machine should be loaded with sufficient fund in it Domain Requirements ‘*Domain requirements are derived from the application domain of the system instead of specific user needs. These requirements make use of domain terminologies specific to the existing domain concept ‘The domain requirements may be in the form of new functional requirements, constraints on existing, functional requirement or guidance on how to carry ‘out certain computation. ‘These are the specialised requirements and hence software engineers find it difficult to corelate the domain requirements with the system requirements. ‘It is important to specify the domain requirements otherwise the system will not work properly. +Example : Domain requirements for the library system. ‘*There should be user interface for handling the databases. These interfaces should be according to some intemational standard. ‘If there is copyright restriction on some document then it should get printed locally on the server. The copies of such document should not get created. rT TECHNICAL PUBLICATIONS. An ip Birt howindge

You might also like