Transcript
Page 1: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

UNIT I INTRODUCTION

Software Engineering paradigms ndash Waterfall Life cycle model ndash Spiral Model ndash Prototype Model ndash fourth Generation Techniques ndash Planning ndash Cost Estimation ndash Organization Structure ndash Software Project Scheduling ndash Risk analysis and management ndash Requirements and Specification ndash Rapid Prototyping

Preface

bull Identify the scope and necessity of software engineeringbull Identify the causes of and solutions for software crisisbull Differentiate a piece of program from a software product11 Introduction

111 Software Engineering - Definitions

Software engineering is the establishment and sound engineering principles applied to obtain reliable and efficient software in an economical manner

Software engineering is the application of a systematic disciplined quantifiable approach to the development operation and maintenance of software

Software engineering encompasses a process management techniques technical methods and the use of tools

Software engineering is that form of engineering that applies the principles of computer science and mathematics to achieving cost-effective solutions to software problems

112 Software process overview

The roadmap to building high quality software products is software process Software processes are adapted to meet the needs of software engineers

and managers as they undertake the development of a software product A software process provides a framework for managing activities that can

very easily get out of control Different projects require different software processes The software engineers work products (programs documentation data) are

produced as consequences of the activities defined by the software process The best indicators of how well a software process has worked are the

quality timeliness and long-term viability of the resulting software product113 Generic Software Engineering Phases

Definition phase - focuses on what (information engineering software project planning and requirements analysis)

Development phase - focuses on how (software design code generation software testing)

Support phase - focuses on change (corrective maintenance adaptive maintenance perfective maintenance preventative maintenance)

114Software Engineering- Layered Technology

1 Software Engineering must rest on an organizational commitment to quality which leads to continued improvements in the software engineering process

2 A Process defines a framework for a set of key process areas that must be established to ensure effective delivery of software engineering technology

The Key process areas form the basis for management control of software projects

These include tasks such as

- Determining Deliverables- Establishing milestones- Software Quality Assurance- Software Configuration (change) Management

3 Software Engineering methods provide the technical how to for building software

Methods include a wide array of tasks such as

- Requirements Analysis- Design- Program Construction- Testing- Maintenance

4 Software Engineering Tools provide automated or semi-automated support for the process and the methods

a ldquoqualityrdquo focusprocess model

methodstools

Example CASE (Computer Aided Software Engineering)

12 Software Engineering Umbrella Activities

Software project tracking and control Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management

13 Software Process Models

Linear Sequential Model (old fashioned but reasonable approach when requirements are well understood)

Prototyping Model (good first step when customer has a legitimate need but is clueless about the details developer needs to resist pressure to extend a rough prototype into a production product)

Rapid Application and Development (RAD) Model (makes heavy use of reusable software components with an extremely short development cycle)

Common process frameworkFramework activities

work taskswork productsmilestones amp deliverablesQA checkpoints

Umbrella Activities

Incremental Model (delivers software in small but usable pieces each piece builds on pieces already delivered)

Spiral Model (couples iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model)

Component-Based Development (spiral model variation in which applications are built from prepackaged software components called classes)

Formal Methods Model (rigorous mathematical notation used to specify design and verify computer-based systems)

Fourth Generation (4GT) Techniques (software tool is used to generate the source code for a software system from a high level specification representation)

131 The General Model life cycle model

Software life cycle models describe phases of the software cycle and the order in which those phases are executed There are tons of models and many companies adopt their own but all have very similar patterns The general basic model is shown below

Each phase produces deliverables required by the next phase in the life cycle Requirements are translated into design Code is produced during implementation that is driven by the design Testing verifies the deliverable of the implementation phase against requirements

Requirements

Business requirements are gathered in this phase This phase is the main focus of the project managers and stake holders Meetings with managers stake holders and users are held in order to determine the requirements

These are general questions that get answered during a requirements gathering phase

Who is going to use the system

How will they use the system

What data should be input into the system

What data should be output by the system

This produces a nice big list of functionality that the system should provide which describes functions the system should perform business logic that processes data what data is stored and used by the system and how the user interface should work The overall result is the system as a whole and how it performs not how it is actually going to do it

Design

The software system design is produced from the results of the requirements phase Architects have the ball in their court during this phase and this is the phase in which their focus lies This is where the details on how the system will work is produced Architecture including hardware and software communication software design (UML is produced here) are all part of the deliverables of a design phase

Implementation

Code is produced from the deliverables of the design phase during implementation and this is the longest phase of the software development life cycle For a developer this is the main focus of the life cycle because this is where the code is produced Implementation my overlap with both the design and testing phases Many tools exists (CASE tools) to actually automate the production of code using information gathered and produced during the design phase

Testing

During testing the implementation is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase Unit tests and systemacceptance tests are done during this phase Unit tests act on a specific component of the system while

system tests act on the system as a whole So in a nutshell that is a very basic overview of the general software development life cycle model Now letrsquos delve into some of the traditional and widely used variations

132 Waterfall Model

This is the most common and classic of life cycle models also referred to as a linear-sequential life cycle model It is very simple to understand and use In a waterfall model each phase must be completed in its entirety before the next phase can begin At the end of each phase a review takes place to determine if the project is on the right path and whether or not to continue or discard the project

Advantages

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

Disadvantages

Adjusting scope during the life cycle can kill a project No working software is produced until late during the life cycle High amounts of risk and uncertainty Poor model for complex and object-oriented projects Poor model for long and ongoing projects Poor model where requirements are at a moderate to high risk of changing

133 PROTOTYPE MODEL

When the developer is unsure of the efficiency of an algorithm the adaptability of an operating system or the form that human machine interaction should take in this case prototype paradigm may offer the best approach

The prototyping paradigm beginning with requirements gathering Developer and customer meet and define the overall objectives for the

software and identify requirement A ldquoQuick designrdquo then occurs This quick design focuses on a representation

of those aspects of the software that will be visible to the customer user The prototype is evaluated by the customer and used to refine requirements

for the software to be developed Iteration occurs as the prototype is tuned to satisfy the need for the

customer while at the same time enabling the developer to better understand what needs to be done

134 INCREMENTAL MODEL

This model combines the elements of the waterfall model with the iterative philosophy of prototyping However unlike prototyping the IM focuses on the delivery of an operational product at the end of each increment

More specifically the model is designed implemented and tested as a series of incremental builds until the product is finished A build consists of pieces of code from various modules that interact together to provide a specific function

At each stage of the IM a new build is coded and then integrated into the structure which is tested as a whole Note that the product is only defined as finished when it satisfies all of its requirements

This model is based upon the recognition that software is built from smaller components

When an incremental model is used the first increment is often a core product

ie basic requirements are addressed but many supplementary features remain undelivered

An example of this incremental approach is observed in the development of word processing applications where the following services are provided on subsequent builds

1 Basic file management editing and document production functions2 Advanced editing and document production functions3 Spell and grammar checking4 Advance page layout

Advantages

Generates working software quickly and early during the software life cycle More flexible ndash less costly to change scope and requirements Easier to test and debug during a smaller iteration Easier to manage risk because risky pieces are identified and handled

during its iteration Each iteration is an easily managed milestone

Disadvantages

Each phase of an iteration is rigid and do not overlap each other Problems may arise pertaining to system architecture because not all

requirements are gathered up front for the entire software life cycle

135 Spiral Model

It describes the water fall and prototyping models

The spiral model proposed by Boehm is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model

Using the spiral model software is developed in a series of incremental releases

A spiral model is divided into a number of framework activities also called task

Regionso Typically there are between three and six task regionso In the model shown the task regions are as follows

Customer communication Tasks required establishing effective communication between developer and customer

Planning Tasks required to define resources timelines and other project related information

Risk analysis Tasks required to access both representations of management risks

Engineering Tasks required to build one or more representation of the application

Constructions and release Tasks required to construct test install and provide user support

Customer evaluation Tasks required to obtain customer feedback based on evaluation of the software representation created during the engineering stage and implemented during the installation stage

Each of the regions is populated by a set of work tasks called the task set that are adapted to the characteristics of the project to be undertaken

Advantages

High amount of risk analysis Good for large and mission-critical projects

Software is produced early in the software life cycle

Disadvantages

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

136 Fourth Generation Techniques

Use of software tools that allow software engineer to specify sw characteristics at higher level

The tools generate codes based on specification More time in design and testing - increase productivity Tools may not be easy to use codes generated may not be efficient

Single customer communication activity the following activities are defined1 Identification of the system or subsystem key ldquostakeholders2 Determination of the stakeholders win conditionsrdquo3 Negotiations of the stakeholders win conditions to reconcile them into a set

of win-win conditions for all concerned (including software project team)The emphasis placed on early negotiation the WINWIN spiral model introduces three process milestones called anchor pointsThe anchor points represent 3 different views of progress as the project traverses the spiral1 Life cycle objectives (LOC)

Define set of objectives for each major software engineering activity2 Life cycle architecture (LOA)

It establishes objectives that must be must be as the system and software architecture is defined3 Initial operational capability (IOC)

It represents a set of objectives associated with the preparation of the software installation14 Software cost estimation

The software cost estimation is the process of predicting the resources required for software development process

Fundamental questions that are asked to judge the estimation are How much effort is required to complete the project or an activity How much calendar time is needed to complete an activity What is the total cost computed for an activity The software cost component are Hardware and software costs Travel and software or technology training costs Effort costs ( the dominant factor in most projects ) which involves Salaries of employees involved in the project Social and insurance costs Costs of building heating and lighting Cost of networking and communications Costs of shared facilities such as library staff

Cost estimation techniques It is not possible to make the accurate estimate of efforts required to

develop a software system because The initial estimates are based on inadequate information in a user

requirements definition The software may run on unfamiliar computers or uses new technology The people in the project may be unknown Project cost estimates may be self fulfilling The estimate defines the budget

and the product is adjusted to meet the budget

Various estimation techniques are

Algorithms cost modeling - the cost estimation is based on the size of thesoftware

Expert judgement ndash the experts from software development and theapplication domain use their experience to predict software costs

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 2: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

Development phase - focuses on how (software design code generation software testing)

Support phase - focuses on change (corrective maintenance adaptive maintenance perfective maintenance preventative maintenance)

114Software Engineering- Layered Technology

1 Software Engineering must rest on an organizational commitment to quality which leads to continued improvements in the software engineering process

2 A Process defines a framework for a set of key process areas that must be established to ensure effective delivery of software engineering technology

The Key process areas form the basis for management control of software projects

These include tasks such as

- Determining Deliverables- Establishing milestones- Software Quality Assurance- Software Configuration (change) Management

3 Software Engineering methods provide the technical how to for building software

Methods include a wide array of tasks such as

- Requirements Analysis- Design- Program Construction- Testing- Maintenance

4 Software Engineering Tools provide automated or semi-automated support for the process and the methods

a ldquoqualityrdquo focusprocess model

methodstools

Example CASE (Computer Aided Software Engineering)

12 Software Engineering Umbrella Activities

Software project tracking and control Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management

13 Software Process Models

Linear Sequential Model (old fashioned but reasonable approach when requirements are well understood)

Prototyping Model (good first step when customer has a legitimate need but is clueless about the details developer needs to resist pressure to extend a rough prototype into a production product)

Rapid Application and Development (RAD) Model (makes heavy use of reusable software components with an extremely short development cycle)

Common process frameworkFramework activities

work taskswork productsmilestones amp deliverablesQA checkpoints

Umbrella Activities

Incremental Model (delivers software in small but usable pieces each piece builds on pieces already delivered)

Spiral Model (couples iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model)

Component-Based Development (spiral model variation in which applications are built from prepackaged software components called classes)

Formal Methods Model (rigorous mathematical notation used to specify design and verify computer-based systems)

Fourth Generation (4GT) Techniques (software tool is used to generate the source code for a software system from a high level specification representation)

131 The General Model life cycle model

Software life cycle models describe phases of the software cycle and the order in which those phases are executed There are tons of models and many companies adopt their own but all have very similar patterns The general basic model is shown below

Each phase produces deliverables required by the next phase in the life cycle Requirements are translated into design Code is produced during implementation that is driven by the design Testing verifies the deliverable of the implementation phase against requirements

Requirements

Business requirements are gathered in this phase This phase is the main focus of the project managers and stake holders Meetings with managers stake holders and users are held in order to determine the requirements

These are general questions that get answered during a requirements gathering phase

Who is going to use the system

How will they use the system

What data should be input into the system

What data should be output by the system

This produces a nice big list of functionality that the system should provide which describes functions the system should perform business logic that processes data what data is stored and used by the system and how the user interface should work The overall result is the system as a whole and how it performs not how it is actually going to do it

Design

The software system design is produced from the results of the requirements phase Architects have the ball in their court during this phase and this is the phase in which their focus lies This is where the details on how the system will work is produced Architecture including hardware and software communication software design (UML is produced here) are all part of the deliverables of a design phase

Implementation

Code is produced from the deliverables of the design phase during implementation and this is the longest phase of the software development life cycle For a developer this is the main focus of the life cycle because this is where the code is produced Implementation my overlap with both the design and testing phases Many tools exists (CASE tools) to actually automate the production of code using information gathered and produced during the design phase

Testing

During testing the implementation is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase Unit tests and systemacceptance tests are done during this phase Unit tests act on a specific component of the system while

system tests act on the system as a whole So in a nutshell that is a very basic overview of the general software development life cycle model Now letrsquos delve into some of the traditional and widely used variations

132 Waterfall Model

This is the most common and classic of life cycle models also referred to as a linear-sequential life cycle model It is very simple to understand and use In a waterfall model each phase must be completed in its entirety before the next phase can begin At the end of each phase a review takes place to determine if the project is on the right path and whether or not to continue or discard the project

Advantages

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

Disadvantages

Adjusting scope during the life cycle can kill a project No working software is produced until late during the life cycle High amounts of risk and uncertainty Poor model for complex and object-oriented projects Poor model for long and ongoing projects Poor model where requirements are at a moderate to high risk of changing

133 PROTOTYPE MODEL

When the developer is unsure of the efficiency of an algorithm the adaptability of an operating system or the form that human machine interaction should take in this case prototype paradigm may offer the best approach

The prototyping paradigm beginning with requirements gathering Developer and customer meet and define the overall objectives for the

software and identify requirement A ldquoQuick designrdquo then occurs This quick design focuses on a representation

of those aspects of the software that will be visible to the customer user The prototype is evaluated by the customer and used to refine requirements

for the software to be developed Iteration occurs as the prototype is tuned to satisfy the need for the

customer while at the same time enabling the developer to better understand what needs to be done

134 INCREMENTAL MODEL

This model combines the elements of the waterfall model with the iterative philosophy of prototyping However unlike prototyping the IM focuses on the delivery of an operational product at the end of each increment

More specifically the model is designed implemented and tested as a series of incremental builds until the product is finished A build consists of pieces of code from various modules that interact together to provide a specific function

At each stage of the IM a new build is coded and then integrated into the structure which is tested as a whole Note that the product is only defined as finished when it satisfies all of its requirements

This model is based upon the recognition that software is built from smaller components

When an incremental model is used the first increment is often a core product

ie basic requirements are addressed but many supplementary features remain undelivered

An example of this incremental approach is observed in the development of word processing applications where the following services are provided on subsequent builds

1 Basic file management editing and document production functions2 Advanced editing and document production functions3 Spell and grammar checking4 Advance page layout

Advantages

Generates working software quickly and early during the software life cycle More flexible ndash less costly to change scope and requirements Easier to test and debug during a smaller iteration Easier to manage risk because risky pieces are identified and handled

during its iteration Each iteration is an easily managed milestone

Disadvantages

Each phase of an iteration is rigid and do not overlap each other Problems may arise pertaining to system architecture because not all

requirements are gathered up front for the entire software life cycle

135 Spiral Model

It describes the water fall and prototyping models

The spiral model proposed by Boehm is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model

Using the spiral model software is developed in a series of incremental releases

A spiral model is divided into a number of framework activities also called task

Regionso Typically there are between three and six task regionso In the model shown the task regions are as follows

Customer communication Tasks required establishing effective communication between developer and customer

Planning Tasks required to define resources timelines and other project related information

Risk analysis Tasks required to access both representations of management risks

Engineering Tasks required to build one or more representation of the application

Constructions and release Tasks required to construct test install and provide user support

Customer evaluation Tasks required to obtain customer feedback based on evaluation of the software representation created during the engineering stage and implemented during the installation stage

Each of the regions is populated by a set of work tasks called the task set that are adapted to the characteristics of the project to be undertaken

Advantages

High amount of risk analysis Good for large and mission-critical projects

Software is produced early in the software life cycle

Disadvantages

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

136 Fourth Generation Techniques

Use of software tools that allow software engineer to specify sw characteristics at higher level

The tools generate codes based on specification More time in design and testing - increase productivity Tools may not be easy to use codes generated may not be efficient

Single customer communication activity the following activities are defined1 Identification of the system or subsystem key ldquostakeholders2 Determination of the stakeholders win conditionsrdquo3 Negotiations of the stakeholders win conditions to reconcile them into a set

of win-win conditions for all concerned (including software project team)The emphasis placed on early negotiation the WINWIN spiral model introduces three process milestones called anchor pointsThe anchor points represent 3 different views of progress as the project traverses the spiral1 Life cycle objectives (LOC)

Define set of objectives for each major software engineering activity2 Life cycle architecture (LOA)

It establishes objectives that must be must be as the system and software architecture is defined3 Initial operational capability (IOC)

It represents a set of objectives associated with the preparation of the software installation14 Software cost estimation

The software cost estimation is the process of predicting the resources required for software development process

Fundamental questions that are asked to judge the estimation are How much effort is required to complete the project or an activity How much calendar time is needed to complete an activity What is the total cost computed for an activity The software cost component are Hardware and software costs Travel and software or technology training costs Effort costs ( the dominant factor in most projects ) which involves Salaries of employees involved in the project Social and insurance costs Costs of building heating and lighting Cost of networking and communications Costs of shared facilities such as library staff

Cost estimation techniques It is not possible to make the accurate estimate of efforts required to

develop a software system because The initial estimates are based on inadequate information in a user

requirements definition The software may run on unfamiliar computers or uses new technology The people in the project may be unknown Project cost estimates may be self fulfilling The estimate defines the budget

and the product is adjusted to meet the budget

Various estimation techniques are

Algorithms cost modeling - the cost estimation is based on the size of thesoftware

Expert judgement ndash the experts from software development and theapplication domain use their experience to predict software costs

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 3: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

Example CASE (Computer Aided Software Engineering)

12 Software Engineering Umbrella Activities

Software project tracking and control Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management

13 Software Process Models

Linear Sequential Model (old fashioned but reasonable approach when requirements are well understood)

Prototyping Model (good first step when customer has a legitimate need but is clueless about the details developer needs to resist pressure to extend a rough prototype into a production product)

Rapid Application and Development (RAD) Model (makes heavy use of reusable software components with an extremely short development cycle)

Common process frameworkFramework activities

work taskswork productsmilestones amp deliverablesQA checkpoints

Umbrella Activities

Incremental Model (delivers software in small but usable pieces each piece builds on pieces already delivered)

Spiral Model (couples iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model)

Component-Based Development (spiral model variation in which applications are built from prepackaged software components called classes)

Formal Methods Model (rigorous mathematical notation used to specify design and verify computer-based systems)

Fourth Generation (4GT) Techniques (software tool is used to generate the source code for a software system from a high level specification representation)

131 The General Model life cycle model

Software life cycle models describe phases of the software cycle and the order in which those phases are executed There are tons of models and many companies adopt their own but all have very similar patterns The general basic model is shown below

Each phase produces deliverables required by the next phase in the life cycle Requirements are translated into design Code is produced during implementation that is driven by the design Testing verifies the deliverable of the implementation phase against requirements

Requirements

Business requirements are gathered in this phase This phase is the main focus of the project managers and stake holders Meetings with managers stake holders and users are held in order to determine the requirements

These are general questions that get answered during a requirements gathering phase

Who is going to use the system

How will they use the system

What data should be input into the system

What data should be output by the system

This produces a nice big list of functionality that the system should provide which describes functions the system should perform business logic that processes data what data is stored and used by the system and how the user interface should work The overall result is the system as a whole and how it performs not how it is actually going to do it

Design

The software system design is produced from the results of the requirements phase Architects have the ball in their court during this phase and this is the phase in which their focus lies This is where the details on how the system will work is produced Architecture including hardware and software communication software design (UML is produced here) are all part of the deliverables of a design phase

Implementation

Code is produced from the deliverables of the design phase during implementation and this is the longest phase of the software development life cycle For a developer this is the main focus of the life cycle because this is where the code is produced Implementation my overlap with both the design and testing phases Many tools exists (CASE tools) to actually automate the production of code using information gathered and produced during the design phase

Testing

During testing the implementation is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase Unit tests and systemacceptance tests are done during this phase Unit tests act on a specific component of the system while

system tests act on the system as a whole So in a nutshell that is a very basic overview of the general software development life cycle model Now letrsquos delve into some of the traditional and widely used variations

132 Waterfall Model

This is the most common and classic of life cycle models also referred to as a linear-sequential life cycle model It is very simple to understand and use In a waterfall model each phase must be completed in its entirety before the next phase can begin At the end of each phase a review takes place to determine if the project is on the right path and whether or not to continue or discard the project

Advantages

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

Disadvantages

Adjusting scope during the life cycle can kill a project No working software is produced until late during the life cycle High amounts of risk and uncertainty Poor model for complex and object-oriented projects Poor model for long and ongoing projects Poor model where requirements are at a moderate to high risk of changing

133 PROTOTYPE MODEL

When the developer is unsure of the efficiency of an algorithm the adaptability of an operating system or the form that human machine interaction should take in this case prototype paradigm may offer the best approach

The prototyping paradigm beginning with requirements gathering Developer and customer meet and define the overall objectives for the

software and identify requirement A ldquoQuick designrdquo then occurs This quick design focuses on a representation

of those aspects of the software that will be visible to the customer user The prototype is evaluated by the customer and used to refine requirements

for the software to be developed Iteration occurs as the prototype is tuned to satisfy the need for the

customer while at the same time enabling the developer to better understand what needs to be done

134 INCREMENTAL MODEL

This model combines the elements of the waterfall model with the iterative philosophy of prototyping However unlike prototyping the IM focuses on the delivery of an operational product at the end of each increment

More specifically the model is designed implemented and tested as a series of incremental builds until the product is finished A build consists of pieces of code from various modules that interact together to provide a specific function

At each stage of the IM a new build is coded and then integrated into the structure which is tested as a whole Note that the product is only defined as finished when it satisfies all of its requirements

This model is based upon the recognition that software is built from smaller components

When an incremental model is used the first increment is often a core product

ie basic requirements are addressed but many supplementary features remain undelivered

An example of this incremental approach is observed in the development of word processing applications where the following services are provided on subsequent builds

1 Basic file management editing and document production functions2 Advanced editing and document production functions3 Spell and grammar checking4 Advance page layout

Advantages

Generates working software quickly and early during the software life cycle More flexible ndash less costly to change scope and requirements Easier to test and debug during a smaller iteration Easier to manage risk because risky pieces are identified and handled

during its iteration Each iteration is an easily managed milestone

Disadvantages

Each phase of an iteration is rigid and do not overlap each other Problems may arise pertaining to system architecture because not all

requirements are gathered up front for the entire software life cycle

135 Spiral Model

It describes the water fall and prototyping models

The spiral model proposed by Boehm is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model

Using the spiral model software is developed in a series of incremental releases

A spiral model is divided into a number of framework activities also called task

Regionso Typically there are between three and six task regionso In the model shown the task regions are as follows

Customer communication Tasks required establishing effective communication between developer and customer

Planning Tasks required to define resources timelines and other project related information

Risk analysis Tasks required to access both representations of management risks

Engineering Tasks required to build one or more representation of the application

Constructions and release Tasks required to construct test install and provide user support

Customer evaluation Tasks required to obtain customer feedback based on evaluation of the software representation created during the engineering stage and implemented during the installation stage

Each of the regions is populated by a set of work tasks called the task set that are adapted to the characteristics of the project to be undertaken

Advantages

High amount of risk analysis Good for large and mission-critical projects

Software is produced early in the software life cycle

Disadvantages

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

136 Fourth Generation Techniques

Use of software tools that allow software engineer to specify sw characteristics at higher level

The tools generate codes based on specification More time in design and testing - increase productivity Tools may not be easy to use codes generated may not be efficient

Single customer communication activity the following activities are defined1 Identification of the system or subsystem key ldquostakeholders2 Determination of the stakeholders win conditionsrdquo3 Negotiations of the stakeholders win conditions to reconcile them into a set

of win-win conditions for all concerned (including software project team)The emphasis placed on early negotiation the WINWIN spiral model introduces three process milestones called anchor pointsThe anchor points represent 3 different views of progress as the project traverses the spiral1 Life cycle objectives (LOC)

Define set of objectives for each major software engineering activity2 Life cycle architecture (LOA)

It establishes objectives that must be must be as the system and software architecture is defined3 Initial operational capability (IOC)

It represents a set of objectives associated with the preparation of the software installation14 Software cost estimation

The software cost estimation is the process of predicting the resources required for software development process

Fundamental questions that are asked to judge the estimation are How much effort is required to complete the project or an activity How much calendar time is needed to complete an activity What is the total cost computed for an activity The software cost component are Hardware and software costs Travel and software or technology training costs Effort costs ( the dominant factor in most projects ) which involves Salaries of employees involved in the project Social and insurance costs Costs of building heating and lighting Cost of networking and communications Costs of shared facilities such as library staff

Cost estimation techniques It is not possible to make the accurate estimate of efforts required to

develop a software system because The initial estimates are based on inadequate information in a user

requirements definition The software may run on unfamiliar computers or uses new technology The people in the project may be unknown Project cost estimates may be self fulfilling The estimate defines the budget

and the product is adjusted to meet the budget

Various estimation techniques are

Algorithms cost modeling - the cost estimation is based on the size of thesoftware

Expert judgement ndash the experts from software development and theapplication domain use their experience to predict software costs

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 4: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

Incremental Model (delivers software in small but usable pieces each piece builds on pieces already delivered)

Spiral Model (couples iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model)

Component-Based Development (spiral model variation in which applications are built from prepackaged software components called classes)

Formal Methods Model (rigorous mathematical notation used to specify design and verify computer-based systems)

Fourth Generation (4GT) Techniques (software tool is used to generate the source code for a software system from a high level specification representation)

131 The General Model life cycle model

Software life cycle models describe phases of the software cycle and the order in which those phases are executed There are tons of models and many companies adopt their own but all have very similar patterns The general basic model is shown below

Each phase produces deliverables required by the next phase in the life cycle Requirements are translated into design Code is produced during implementation that is driven by the design Testing verifies the deliverable of the implementation phase against requirements

Requirements

Business requirements are gathered in this phase This phase is the main focus of the project managers and stake holders Meetings with managers stake holders and users are held in order to determine the requirements

These are general questions that get answered during a requirements gathering phase

Who is going to use the system

How will they use the system

What data should be input into the system

What data should be output by the system

This produces a nice big list of functionality that the system should provide which describes functions the system should perform business logic that processes data what data is stored and used by the system and how the user interface should work The overall result is the system as a whole and how it performs not how it is actually going to do it

Design

The software system design is produced from the results of the requirements phase Architects have the ball in their court during this phase and this is the phase in which their focus lies This is where the details on how the system will work is produced Architecture including hardware and software communication software design (UML is produced here) are all part of the deliverables of a design phase

Implementation

Code is produced from the deliverables of the design phase during implementation and this is the longest phase of the software development life cycle For a developer this is the main focus of the life cycle because this is where the code is produced Implementation my overlap with both the design and testing phases Many tools exists (CASE tools) to actually automate the production of code using information gathered and produced during the design phase

Testing

During testing the implementation is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase Unit tests and systemacceptance tests are done during this phase Unit tests act on a specific component of the system while

system tests act on the system as a whole So in a nutshell that is a very basic overview of the general software development life cycle model Now letrsquos delve into some of the traditional and widely used variations

132 Waterfall Model

This is the most common and classic of life cycle models also referred to as a linear-sequential life cycle model It is very simple to understand and use In a waterfall model each phase must be completed in its entirety before the next phase can begin At the end of each phase a review takes place to determine if the project is on the right path and whether or not to continue or discard the project

Advantages

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

Disadvantages

Adjusting scope during the life cycle can kill a project No working software is produced until late during the life cycle High amounts of risk and uncertainty Poor model for complex and object-oriented projects Poor model for long and ongoing projects Poor model where requirements are at a moderate to high risk of changing

133 PROTOTYPE MODEL

When the developer is unsure of the efficiency of an algorithm the adaptability of an operating system or the form that human machine interaction should take in this case prototype paradigm may offer the best approach

The prototyping paradigm beginning with requirements gathering Developer and customer meet and define the overall objectives for the

software and identify requirement A ldquoQuick designrdquo then occurs This quick design focuses on a representation

of those aspects of the software that will be visible to the customer user The prototype is evaluated by the customer and used to refine requirements

for the software to be developed Iteration occurs as the prototype is tuned to satisfy the need for the

customer while at the same time enabling the developer to better understand what needs to be done

134 INCREMENTAL MODEL

This model combines the elements of the waterfall model with the iterative philosophy of prototyping However unlike prototyping the IM focuses on the delivery of an operational product at the end of each increment

More specifically the model is designed implemented and tested as a series of incremental builds until the product is finished A build consists of pieces of code from various modules that interact together to provide a specific function

At each stage of the IM a new build is coded and then integrated into the structure which is tested as a whole Note that the product is only defined as finished when it satisfies all of its requirements

This model is based upon the recognition that software is built from smaller components

When an incremental model is used the first increment is often a core product

ie basic requirements are addressed but many supplementary features remain undelivered

An example of this incremental approach is observed in the development of word processing applications where the following services are provided on subsequent builds

1 Basic file management editing and document production functions2 Advanced editing and document production functions3 Spell and grammar checking4 Advance page layout

Advantages

Generates working software quickly and early during the software life cycle More flexible ndash less costly to change scope and requirements Easier to test and debug during a smaller iteration Easier to manage risk because risky pieces are identified and handled

during its iteration Each iteration is an easily managed milestone

Disadvantages

Each phase of an iteration is rigid and do not overlap each other Problems may arise pertaining to system architecture because not all

requirements are gathered up front for the entire software life cycle

135 Spiral Model

It describes the water fall and prototyping models

The spiral model proposed by Boehm is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model

Using the spiral model software is developed in a series of incremental releases

A spiral model is divided into a number of framework activities also called task

Regionso Typically there are between three and six task regionso In the model shown the task regions are as follows

Customer communication Tasks required establishing effective communication between developer and customer

Planning Tasks required to define resources timelines and other project related information

Risk analysis Tasks required to access both representations of management risks

Engineering Tasks required to build one or more representation of the application

Constructions and release Tasks required to construct test install and provide user support

Customer evaluation Tasks required to obtain customer feedback based on evaluation of the software representation created during the engineering stage and implemented during the installation stage

Each of the regions is populated by a set of work tasks called the task set that are adapted to the characteristics of the project to be undertaken

Advantages

High amount of risk analysis Good for large and mission-critical projects

Software is produced early in the software life cycle

Disadvantages

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

136 Fourth Generation Techniques

Use of software tools that allow software engineer to specify sw characteristics at higher level

The tools generate codes based on specification More time in design and testing - increase productivity Tools may not be easy to use codes generated may not be efficient

Single customer communication activity the following activities are defined1 Identification of the system or subsystem key ldquostakeholders2 Determination of the stakeholders win conditionsrdquo3 Negotiations of the stakeholders win conditions to reconcile them into a set

of win-win conditions for all concerned (including software project team)The emphasis placed on early negotiation the WINWIN spiral model introduces three process milestones called anchor pointsThe anchor points represent 3 different views of progress as the project traverses the spiral1 Life cycle objectives (LOC)

Define set of objectives for each major software engineering activity2 Life cycle architecture (LOA)

It establishes objectives that must be must be as the system and software architecture is defined3 Initial operational capability (IOC)

It represents a set of objectives associated with the preparation of the software installation14 Software cost estimation

The software cost estimation is the process of predicting the resources required for software development process

Fundamental questions that are asked to judge the estimation are How much effort is required to complete the project or an activity How much calendar time is needed to complete an activity What is the total cost computed for an activity The software cost component are Hardware and software costs Travel and software or technology training costs Effort costs ( the dominant factor in most projects ) which involves Salaries of employees involved in the project Social and insurance costs Costs of building heating and lighting Cost of networking and communications Costs of shared facilities such as library staff

Cost estimation techniques It is not possible to make the accurate estimate of efforts required to

develop a software system because The initial estimates are based on inadequate information in a user

requirements definition The software may run on unfamiliar computers or uses new technology The people in the project may be unknown Project cost estimates may be self fulfilling The estimate defines the budget

and the product is adjusted to meet the budget

Various estimation techniques are

Algorithms cost modeling - the cost estimation is based on the size of thesoftware

Expert judgement ndash the experts from software development and theapplication domain use their experience to predict software costs

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 5: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

Business requirements are gathered in this phase This phase is the main focus of the project managers and stake holders Meetings with managers stake holders and users are held in order to determine the requirements

These are general questions that get answered during a requirements gathering phase

Who is going to use the system

How will they use the system

What data should be input into the system

What data should be output by the system

This produces a nice big list of functionality that the system should provide which describes functions the system should perform business logic that processes data what data is stored and used by the system and how the user interface should work The overall result is the system as a whole and how it performs not how it is actually going to do it

Design

The software system design is produced from the results of the requirements phase Architects have the ball in their court during this phase and this is the phase in which their focus lies This is where the details on how the system will work is produced Architecture including hardware and software communication software design (UML is produced here) are all part of the deliverables of a design phase

Implementation

Code is produced from the deliverables of the design phase during implementation and this is the longest phase of the software development life cycle For a developer this is the main focus of the life cycle because this is where the code is produced Implementation my overlap with both the design and testing phases Many tools exists (CASE tools) to actually automate the production of code using information gathered and produced during the design phase

Testing

During testing the implementation is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase Unit tests and systemacceptance tests are done during this phase Unit tests act on a specific component of the system while

system tests act on the system as a whole So in a nutshell that is a very basic overview of the general software development life cycle model Now letrsquos delve into some of the traditional and widely used variations

132 Waterfall Model

This is the most common and classic of life cycle models also referred to as a linear-sequential life cycle model It is very simple to understand and use In a waterfall model each phase must be completed in its entirety before the next phase can begin At the end of each phase a review takes place to determine if the project is on the right path and whether or not to continue or discard the project

Advantages

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

Disadvantages

Adjusting scope during the life cycle can kill a project No working software is produced until late during the life cycle High amounts of risk and uncertainty Poor model for complex and object-oriented projects Poor model for long and ongoing projects Poor model where requirements are at a moderate to high risk of changing

133 PROTOTYPE MODEL

When the developer is unsure of the efficiency of an algorithm the adaptability of an operating system or the form that human machine interaction should take in this case prototype paradigm may offer the best approach

The prototyping paradigm beginning with requirements gathering Developer and customer meet and define the overall objectives for the

software and identify requirement A ldquoQuick designrdquo then occurs This quick design focuses on a representation

of those aspects of the software that will be visible to the customer user The prototype is evaluated by the customer and used to refine requirements

for the software to be developed Iteration occurs as the prototype is tuned to satisfy the need for the

customer while at the same time enabling the developer to better understand what needs to be done

134 INCREMENTAL MODEL

This model combines the elements of the waterfall model with the iterative philosophy of prototyping However unlike prototyping the IM focuses on the delivery of an operational product at the end of each increment

More specifically the model is designed implemented and tested as a series of incremental builds until the product is finished A build consists of pieces of code from various modules that interact together to provide a specific function

At each stage of the IM a new build is coded and then integrated into the structure which is tested as a whole Note that the product is only defined as finished when it satisfies all of its requirements

This model is based upon the recognition that software is built from smaller components

When an incremental model is used the first increment is often a core product

ie basic requirements are addressed but many supplementary features remain undelivered

An example of this incremental approach is observed in the development of word processing applications where the following services are provided on subsequent builds

1 Basic file management editing and document production functions2 Advanced editing and document production functions3 Spell and grammar checking4 Advance page layout

Advantages

Generates working software quickly and early during the software life cycle More flexible ndash less costly to change scope and requirements Easier to test and debug during a smaller iteration Easier to manage risk because risky pieces are identified and handled

during its iteration Each iteration is an easily managed milestone

Disadvantages

Each phase of an iteration is rigid and do not overlap each other Problems may arise pertaining to system architecture because not all

requirements are gathered up front for the entire software life cycle

135 Spiral Model

It describes the water fall and prototyping models

The spiral model proposed by Boehm is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model

Using the spiral model software is developed in a series of incremental releases

A spiral model is divided into a number of framework activities also called task

Regionso Typically there are between three and six task regionso In the model shown the task regions are as follows

Customer communication Tasks required establishing effective communication between developer and customer

Planning Tasks required to define resources timelines and other project related information

Risk analysis Tasks required to access both representations of management risks

Engineering Tasks required to build one or more representation of the application

Constructions and release Tasks required to construct test install and provide user support

Customer evaluation Tasks required to obtain customer feedback based on evaluation of the software representation created during the engineering stage and implemented during the installation stage

Each of the regions is populated by a set of work tasks called the task set that are adapted to the characteristics of the project to be undertaken

Advantages

High amount of risk analysis Good for large and mission-critical projects

Software is produced early in the software life cycle

Disadvantages

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

136 Fourth Generation Techniques

Use of software tools that allow software engineer to specify sw characteristics at higher level

The tools generate codes based on specification More time in design and testing - increase productivity Tools may not be easy to use codes generated may not be efficient

Single customer communication activity the following activities are defined1 Identification of the system or subsystem key ldquostakeholders2 Determination of the stakeholders win conditionsrdquo3 Negotiations of the stakeholders win conditions to reconcile them into a set

of win-win conditions for all concerned (including software project team)The emphasis placed on early negotiation the WINWIN spiral model introduces three process milestones called anchor pointsThe anchor points represent 3 different views of progress as the project traverses the spiral1 Life cycle objectives (LOC)

Define set of objectives for each major software engineering activity2 Life cycle architecture (LOA)

It establishes objectives that must be must be as the system and software architecture is defined3 Initial operational capability (IOC)

It represents a set of objectives associated with the preparation of the software installation14 Software cost estimation

The software cost estimation is the process of predicting the resources required for software development process

Fundamental questions that are asked to judge the estimation are How much effort is required to complete the project or an activity How much calendar time is needed to complete an activity What is the total cost computed for an activity The software cost component are Hardware and software costs Travel and software or technology training costs Effort costs ( the dominant factor in most projects ) which involves Salaries of employees involved in the project Social and insurance costs Costs of building heating and lighting Cost of networking and communications Costs of shared facilities such as library staff

Cost estimation techniques It is not possible to make the accurate estimate of efforts required to

develop a software system because The initial estimates are based on inadequate information in a user

requirements definition The software may run on unfamiliar computers or uses new technology The people in the project may be unknown Project cost estimates may be self fulfilling The estimate defines the budget

and the product is adjusted to meet the budget

Various estimation techniques are

Algorithms cost modeling - the cost estimation is based on the size of thesoftware

Expert judgement ndash the experts from software development and theapplication domain use their experience to predict software costs

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 6: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

system tests act on the system as a whole So in a nutshell that is a very basic overview of the general software development life cycle model Now letrsquos delve into some of the traditional and widely used variations

132 Waterfall Model

This is the most common and classic of life cycle models also referred to as a linear-sequential life cycle model It is very simple to understand and use In a waterfall model each phase must be completed in its entirety before the next phase can begin At the end of each phase a review takes place to determine if the project is on the right path and whether or not to continue or discard the project

Advantages

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

Disadvantages

Adjusting scope during the life cycle can kill a project No working software is produced until late during the life cycle High amounts of risk and uncertainty Poor model for complex and object-oriented projects Poor model for long and ongoing projects Poor model where requirements are at a moderate to high risk of changing

133 PROTOTYPE MODEL

When the developer is unsure of the efficiency of an algorithm the adaptability of an operating system or the form that human machine interaction should take in this case prototype paradigm may offer the best approach

The prototyping paradigm beginning with requirements gathering Developer and customer meet and define the overall objectives for the

software and identify requirement A ldquoQuick designrdquo then occurs This quick design focuses on a representation

of those aspects of the software that will be visible to the customer user The prototype is evaluated by the customer and used to refine requirements

for the software to be developed Iteration occurs as the prototype is tuned to satisfy the need for the

customer while at the same time enabling the developer to better understand what needs to be done

134 INCREMENTAL MODEL

This model combines the elements of the waterfall model with the iterative philosophy of prototyping However unlike prototyping the IM focuses on the delivery of an operational product at the end of each increment

More specifically the model is designed implemented and tested as a series of incremental builds until the product is finished A build consists of pieces of code from various modules that interact together to provide a specific function

At each stage of the IM a new build is coded and then integrated into the structure which is tested as a whole Note that the product is only defined as finished when it satisfies all of its requirements

This model is based upon the recognition that software is built from smaller components

When an incremental model is used the first increment is often a core product

ie basic requirements are addressed but many supplementary features remain undelivered

An example of this incremental approach is observed in the development of word processing applications where the following services are provided on subsequent builds

1 Basic file management editing and document production functions2 Advanced editing and document production functions3 Spell and grammar checking4 Advance page layout

Advantages

Generates working software quickly and early during the software life cycle More flexible ndash less costly to change scope and requirements Easier to test and debug during a smaller iteration Easier to manage risk because risky pieces are identified and handled

during its iteration Each iteration is an easily managed milestone

Disadvantages

Each phase of an iteration is rigid and do not overlap each other Problems may arise pertaining to system architecture because not all

requirements are gathered up front for the entire software life cycle

135 Spiral Model

It describes the water fall and prototyping models

The spiral model proposed by Boehm is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model

Using the spiral model software is developed in a series of incremental releases

A spiral model is divided into a number of framework activities also called task

Regionso Typically there are between three and six task regionso In the model shown the task regions are as follows

Customer communication Tasks required establishing effective communication between developer and customer

Planning Tasks required to define resources timelines and other project related information

Risk analysis Tasks required to access both representations of management risks

Engineering Tasks required to build one or more representation of the application

Constructions and release Tasks required to construct test install and provide user support

Customer evaluation Tasks required to obtain customer feedback based on evaluation of the software representation created during the engineering stage and implemented during the installation stage

Each of the regions is populated by a set of work tasks called the task set that are adapted to the characteristics of the project to be undertaken

Advantages

High amount of risk analysis Good for large and mission-critical projects

Software is produced early in the software life cycle

Disadvantages

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

136 Fourth Generation Techniques

Use of software tools that allow software engineer to specify sw characteristics at higher level

The tools generate codes based on specification More time in design and testing - increase productivity Tools may not be easy to use codes generated may not be efficient

Single customer communication activity the following activities are defined1 Identification of the system or subsystem key ldquostakeholders2 Determination of the stakeholders win conditionsrdquo3 Negotiations of the stakeholders win conditions to reconcile them into a set

of win-win conditions for all concerned (including software project team)The emphasis placed on early negotiation the WINWIN spiral model introduces three process milestones called anchor pointsThe anchor points represent 3 different views of progress as the project traverses the spiral1 Life cycle objectives (LOC)

Define set of objectives for each major software engineering activity2 Life cycle architecture (LOA)

It establishes objectives that must be must be as the system and software architecture is defined3 Initial operational capability (IOC)

It represents a set of objectives associated with the preparation of the software installation14 Software cost estimation

The software cost estimation is the process of predicting the resources required for software development process

Fundamental questions that are asked to judge the estimation are How much effort is required to complete the project or an activity How much calendar time is needed to complete an activity What is the total cost computed for an activity The software cost component are Hardware and software costs Travel and software or technology training costs Effort costs ( the dominant factor in most projects ) which involves Salaries of employees involved in the project Social and insurance costs Costs of building heating and lighting Cost of networking and communications Costs of shared facilities such as library staff

Cost estimation techniques It is not possible to make the accurate estimate of efforts required to

develop a software system because The initial estimates are based on inadequate information in a user

requirements definition The software may run on unfamiliar computers or uses new technology The people in the project may be unknown Project cost estimates may be self fulfilling The estimate defines the budget

and the product is adjusted to meet the budget

Various estimation techniques are

Algorithms cost modeling - the cost estimation is based on the size of thesoftware

Expert judgement ndash the experts from software development and theapplication domain use their experience to predict software costs

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 7: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

When the developer is unsure of the efficiency of an algorithm the adaptability of an operating system or the form that human machine interaction should take in this case prototype paradigm may offer the best approach

The prototyping paradigm beginning with requirements gathering Developer and customer meet and define the overall objectives for the

software and identify requirement A ldquoQuick designrdquo then occurs This quick design focuses on a representation

of those aspects of the software that will be visible to the customer user The prototype is evaluated by the customer and used to refine requirements

for the software to be developed Iteration occurs as the prototype is tuned to satisfy the need for the

customer while at the same time enabling the developer to better understand what needs to be done

134 INCREMENTAL MODEL

This model combines the elements of the waterfall model with the iterative philosophy of prototyping However unlike prototyping the IM focuses on the delivery of an operational product at the end of each increment

More specifically the model is designed implemented and tested as a series of incremental builds until the product is finished A build consists of pieces of code from various modules that interact together to provide a specific function

At each stage of the IM a new build is coded and then integrated into the structure which is tested as a whole Note that the product is only defined as finished when it satisfies all of its requirements

This model is based upon the recognition that software is built from smaller components

When an incremental model is used the first increment is often a core product

ie basic requirements are addressed but many supplementary features remain undelivered

An example of this incremental approach is observed in the development of word processing applications where the following services are provided on subsequent builds

1 Basic file management editing and document production functions2 Advanced editing and document production functions3 Spell and grammar checking4 Advance page layout

Advantages

Generates working software quickly and early during the software life cycle More flexible ndash less costly to change scope and requirements Easier to test and debug during a smaller iteration Easier to manage risk because risky pieces are identified and handled

during its iteration Each iteration is an easily managed milestone

Disadvantages

Each phase of an iteration is rigid and do not overlap each other Problems may arise pertaining to system architecture because not all

requirements are gathered up front for the entire software life cycle

135 Spiral Model

It describes the water fall and prototyping models

The spiral model proposed by Boehm is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model

Using the spiral model software is developed in a series of incremental releases

A spiral model is divided into a number of framework activities also called task

Regionso Typically there are between three and six task regionso In the model shown the task regions are as follows

Customer communication Tasks required establishing effective communication between developer and customer

Planning Tasks required to define resources timelines and other project related information

Risk analysis Tasks required to access both representations of management risks

Engineering Tasks required to build one or more representation of the application

Constructions and release Tasks required to construct test install and provide user support

Customer evaluation Tasks required to obtain customer feedback based on evaluation of the software representation created during the engineering stage and implemented during the installation stage

Each of the regions is populated by a set of work tasks called the task set that are adapted to the characteristics of the project to be undertaken

Advantages

High amount of risk analysis Good for large and mission-critical projects

Software is produced early in the software life cycle

Disadvantages

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

136 Fourth Generation Techniques

Use of software tools that allow software engineer to specify sw characteristics at higher level

The tools generate codes based on specification More time in design and testing - increase productivity Tools may not be easy to use codes generated may not be efficient

Single customer communication activity the following activities are defined1 Identification of the system or subsystem key ldquostakeholders2 Determination of the stakeholders win conditionsrdquo3 Negotiations of the stakeholders win conditions to reconcile them into a set

of win-win conditions for all concerned (including software project team)The emphasis placed on early negotiation the WINWIN spiral model introduces three process milestones called anchor pointsThe anchor points represent 3 different views of progress as the project traverses the spiral1 Life cycle objectives (LOC)

Define set of objectives for each major software engineering activity2 Life cycle architecture (LOA)

It establishes objectives that must be must be as the system and software architecture is defined3 Initial operational capability (IOC)

It represents a set of objectives associated with the preparation of the software installation14 Software cost estimation

The software cost estimation is the process of predicting the resources required for software development process

Fundamental questions that are asked to judge the estimation are How much effort is required to complete the project or an activity How much calendar time is needed to complete an activity What is the total cost computed for an activity The software cost component are Hardware and software costs Travel and software or technology training costs Effort costs ( the dominant factor in most projects ) which involves Salaries of employees involved in the project Social and insurance costs Costs of building heating and lighting Cost of networking and communications Costs of shared facilities such as library staff

Cost estimation techniques It is not possible to make the accurate estimate of efforts required to

develop a software system because The initial estimates are based on inadequate information in a user

requirements definition The software may run on unfamiliar computers or uses new technology The people in the project may be unknown Project cost estimates may be self fulfilling The estimate defines the budget

and the product is adjusted to meet the budget

Various estimation techniques are

Algorithms cost modeling - the cost estimation is based on the size of thesoftware

Expert judgement ndash the experts from software development and theapplication domain use their experience to predict software costs

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 8: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

ie basic requirements are addressed but many supplementary features remain undelivered

An example of this incremental approach is observed in the development of word processing applications where the following services are provided on subsequent builds

1 Basic file management editing and document production functions2 Advanced editing and document production functions3 Spell and grammar checking4 Advance page layout

Advantages

Generates working software quickly and early during the software life cycle More flexible ndash less costly to change scope and requirements Easier to test and debug during a smaller iteration Easier to manage risk because risky pieces are identified and handled

during its iteration Each iteration is an easily managed milestone

Disadvantages

Each phase of an iteration is rigid and do not overlap each other Problems may arise pertaining to system architecture because not all

requirements are gathered up front for the entire software life cycle

135 Spiral Model

It describes the water fall and prototyping models

The spiral model proposed by Boehm is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model

Using the spiral model software is developed in a series of incremental releases

A spiral model is divided into a number of framework activities also called task

Regionso Typically there are between three and six task regionso In the model shown the task regions are as follows

Customer communication Tasks required establishing effective communication between developer and customer

Planning Tasks required to define resources timelines and other project related information

Risk analysis Tasks required to access both representations of management risks

Engineering Tasks required to build one or more representation of the application

Constructions and release Tasks required to construct test install and provide user support

Customer evaluation Tasks required to obtain customer feedback based on evaluation of the software representation created during the engineering stage and implemented during the installation stage

Each of the regions is populated by a set of work tasks called the task set that are adapted to the characteristics of the project to be undertaken

Advantages

High amount of risk analysis Good for large and mission-critical projects

Software is produced early in the software life cycle

Disadvantages

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

136 Fourth Generation Techniques

Use of software tools that allow software engineer to specify sw characteristics at higher level

The tools generate codes based on specification More time in design and testing - increase productivity Tools may not be easy to use codes generated may not be efficient

Single customer communication activity the following activities are defined1 Identification of the system or subsystem key ldquostakeholders2 Determination of the stakeholders win conditionsrdquo3 Negotiations of the stakeholders win conditions to reconcile them into a set

of win-win conditions for all concerned (including software project team)The emphasis placed on early negotiation the WINWIN spiral model introduces three process milestones called anchor pointsThe anchor points represent 3 different views of progress as the project traverses the spiral1 Life cycle objectives (LOC)

Define set of objectives for each major software engineering activity2 Life cycle architecture (LOA)

It establishes objectives that must be must be as the system and software architecture is defined3 Initial operational capability (IOC)

It represents a set of objectives associated with the preparation of the software installation14 Software cost estimation

The software cost estimation is the process of predicting the resources required for software development process

Fundamental questions that are asked to judge the estimation are How much effort is required to complete the project or an activity How much calendar time is needed to complete an activity What is the total cost computed for an activity The software cost component are Hardware and software costs Travel and software or technology training costs Effort costs ( the dominant factor in most projects ) which involves Salaries of employees involved in the project Social and insurance costs Costs of building heating and lighting Cost of networking and communications Costs of shared facilities such as library staff

Cost estimation techniques It is not possible to make the accurate estimate of efforts required to

develop a software system because The initial estimates are based on inadequate information in a user

requirements definition The software may run on unfamiliar computers or uses new technology The people in the project may be unknown Project cost estimates may be self fulfilling The estimate defines the budget

and the product is adjusted to meet the budget

Various estimation techniques are

Algorithms cost modeling - the cost estimation is based on the size of thesoftware

Expert judgement ndash the experts from software development and theapplication domain use their experience to predict software costs

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 9: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

The spiral model proposed by Boehm is an evolutionary software process model that couples the iterative nature of prototyping with the controlled and systematic aspects of the linear sequential model

Using the spiral model software is developed in a series of incremental releases

A spiral model is divided into a number of framework activities also called task

Regionso Typically there are between three and six task regionso In the model shown the task regions are as follows

Customer communication Tasks required establishing effective communication between developer and customer

Planning Tasks required to define resources timelines and other project related information

Risk analysis Tasks required to access both representations of management risks

Engineering Tasks required to build one or more representation of the application

Constructions and release Tasks required to construct test install and provide user support

Customer evaluation Tasks required to obtain customer feedback based on evaluation of the software representation created during the engineering stage and implemented during the installation stage

Each of the regions is populated by a set of work tasks called the task set that are adapted to the characteristics of the project to be undertaken

Advantages

High amount of risk analysis Good for large and mission-critical projects

Software is produced early in the software life cycle

Disadvantages

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

136 Fourth Generation Techniques

Use of software tools that allow software engineer to specify sw characteristics at higher level

The tools generate codes based on specification More time in design and testing - increase productivity Tools may not be easy to use codes generated may not be efficient

Single customer communication activity the following activities are defined1 Identification of the system or subsystem key ldquostakeholders2 Determination of the stakeholders win conditionsrdquo3 Negotiations of the stakeholders win conditions to reconcile them into a set

of win-win conditions for all concerned (including software project team)The emphasis placed on early negotiation the WINWIN spiral model introduces three process milestones called anchor pointsThe anchor points represent 3 different views of progress as the project traverses the spiral1 Life cycle objectives (LOC)

Define set of objectives for each major software engineering activity2 Life cycle architecture (LOA)

It establishes objectives that must be must be as the system and software architecture is defined3 Initial operational capability (IOC)

It represents a set of objectives associated with the preparation of the software installation14 Software cost estimation

The software cost estimation is the process of predicting the resources required for software development process

Fundamental questions that are asked to judge the estimation are How much effort is required to complete the project or an activity How much calendar time is needed to complete an activity What is the total cost computed for an activity The software cost component are Hardware and software costs Travel and software or technology training costs Effort costs ( the dominant factor in most projects ) which involves Salaries of employees involved in the project Social and insurance costs Costs of building heating and lighting Cost of networking and communications Costs of shared facilities such as library staff

Cost estimation techniques It is not possible to make the accurate estimate of efforts required to

develop a software system because The initial estimates are based on inadequate information in a user

requirements definition The software may run on unfamiliar computers or uses new technology The people in the project may be unknown Project cost estimates may be self fulfilling The estimate defines the budget

and the product is adjusted to meet the budget

Various estimation techniques are

Algorithms cost modeling - the cost estimation is based on the size of thesoftware

Expert judgement ndash the experts from software development and theapplication domain use their experience to predict software costs

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 10: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

Software is produced early in the software life cycle

Disadvantages

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

136 Fourth Generation Techniques

Use of software tools that allow software engineer to specify sw characteristics at higher level

The tools generate codes based on specification More time in design and testing - increase productivity Tools may not be easy to use codes generated may not be efficient

Single customer communication activity the following activities are defined1 Identification of the system or subsystem key ldquostakeholders2 Determination of the stakeholders win conditionsrdquo3 Negotiations of the stakeholders win conditions to reconcile them into a set

of win-win conditions for all concerned (including software project team)The emphasis placed on early negotiation the WINWIN spiral model introduces three process milestones called anchor pointsThe anchor points represent 3 different views of progress as the project traverses the spiral1 Life cycle objectives (LOC)

Define set of objectives for each major software engineering activity2 Life cycle architecture (LOA)

It establishes objectives that must be must be as the system and software architecture is defined3 Initial operational capability (IOC)

It represents a set of objectives associated with the preparation of the software installation14 Software cost estimation

The software cost estimation is the process of predicting the resources required for software development process

Fundamental questions that are asked to judge the estimation are How much effort is required to complete the project or an activity How much calendar time is needed to complete an activity What is the total cost computed for an activity The software cost component are Hardware and software costs Travel and software or technology training costs Effort costs ( the dominant factor in most projects ) which involves Salaries of employees involved in the project Social and insurance costs Costs of building heating and lighting Cost of networking and communications Costs of shared facilities such as library staff

Cost estimation techniques It is not possible to make the accurate estimate of efforts required to

develop a software system because The initial estimates are based on inadequate information in a user

requirements definition The software may run on unfamiliar computers or uses new technology The people in the project may be unknown Project cost estimates may be self fulfilling The estimate defines the budget

and the product is adjusted to meet the budget

Various estimation techniques are

Algorithms cost modeling - the cost estimation is based on the size of thesoftware

Expert judgement ndash the experts from software development and theapplication domain use their experience to predict software costs

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 11: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

Define set of objectives for each major software engineering activity2 Life cycle architecture (LOA)

It establishes objectives that must be must be as the system and software architecture is defined3 Initial operational capability (IOC)

It represents a set of objectives associated with the preparation of the software installation14 Software cost estimation

The software cost estimation is the process of predicting the resources required for software development process

Fundamental questions that are asked to judge the estimation are How much effort is required to complete the project or an activity How much calendar time is needed to complete an activity What is the total cost computed for an activity The software cost component are Hardware and software costs Travel and software or technology training costs Effort costs ( the dominant factor in most projects ) which involves Salaries of employees involved in the project Social and insurance costs Costs of building heating and lighting Cost of networking and communications Costs of shared facilities such as library staff

Cost estimation techniques It is not possible to make the accurate estimate of efforts required to

develop a software system because The initial estimates are based on inadequate information in a user

requirements definition The software may run on unfamiliar computers or uses new technology The people in the project may be unknown Project cost estimates may be self fulfilling The estimate defines the budget

and the product is adjusted to meet the budget

Various estimation techniques are

Algorithms cost modeling - the cost estimation is based on the size of thesoftware

Expert judgement ndash the experts from software development and theapplication domain use their experience to predict software costs

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 12: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

Estimation by analogy ndash the cost of a project is computed by comparing the project to a similar project in the same application domain and then cost can be computed

Parkinsonrsquos law ndash the cost is determined by available resources rather than

by objective assessment pricing to win ndash the project costs whatever the customer ready to spend on

it

There are two approaches used in cost estimation

Top ndash down in this approach we start estimation at the system level andassess the overall system functionality and focuses on how this is deliveredthrough sub-systems

Bottom ndash up in this approach we start at the component level and estimate the effort required for each component Add these efforts to reach a final estimate

Function point model The function point model is based on functionality of the delivered

application These are generally independent of the programming language used This method is developed by Albrecht in 1979 for IBM Function points are derived using

1 Countable measure of the software requirements domain2 Assessments of the software complexity

How to calculate function point The data for following information domain characteristics are collected

1 Number of user inputs ndash each user input which provides distinctapplication data to the software is counted2 Number of user outputs ndash each user output that provides applicationdata to the user is counted eg screens reports error messages3 Number of user inquiries ndash an on-line input that results in thegeneration of some immediate software response in the form of anoutput4 Number of files ndash each logical master file ie a logical grouping of datathat may be part of a database or a separate file

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 13: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

5 Number of external interfaces ndash all machine ndash readable interfaces thatare used to transmit information to another system are counted

the organization needs to develop criteria which determine whether aparticular entry is simple average or complex

The weighting factors should be determined by observations or by experiments

The count table can be computed with the help of above given table

Now the software complexity can be computed by answering following questions These are complexity adjustment values

Rate each of the above factors according to the following scale Function points (FP) = count total (065 + (001 sum (f1)) Once the functional point is calculated then we can compute

variousmeasures as follows

Productivity = FP person-monthQuality = number of faults FPCost = $ FPDocumentation = pages of documentation FP

Project planning

Under this activity various different types of plan may be developed to support the main software project plan that is concerned with schedule and budget

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 14: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

This is the continuous activity from initial concept through to system delivery Plans must be regularly revised as new information becomes available

Types of project plan

quality plan this plan describes the quality procedures and standards that will be used in a project

validation plan this plan describes the approach resources and schedulerequired for system validation

Configuration management plan this plan focuses on the configurationmanagement procedures and structures to be used

Maintenance plan the purpose of maintenance plan is to predict themaintenance requirements of the system maintenance cost and effort

required

Staff development plan this plan describes how to develop the skills andexperience of the project team members

Activities in project planning

The project planning activities can be carried out in following steps

1 Identify the constraints in the project

2 Make initial assessment of the project

3 Define project milestones and deadlines

4 While developing the project

prepare project schedule Initiate project activities as per the project schedule Review progress of the project Update project schedule if required Revise project constraints and deliverables

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 15: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

If any problem arises then perform technical review5 Repeat the step 4 until the project is ready

Scheduling

While scheduling the project the project is split into number of tasks and time and resources required for each task to accomplish is estimated

While scheduling the project organize tasks concurrently to make optimal use of workforce

Minimize task dependence to avoid delays caused by one task waiting for another to complete The tasks are also called as work breakdown structure (WBS)

Program evaluation and review technique (PERT) and critical path method (CPM) are two project scheduling methods used in software development

With the help of PERT and CPM technique the software planner can determine1 Critical path it can be defined as a chain of tasks that determines the duration of the project2 Time estimates for individual tasks by applying statistical model3 A boundary time the boundary time defines the time required by particular task to accomplish

Boundary time calculation helps in determining critical path It also provides the project manager to evaluate the progress of the individuals tasks

Time line chart In software project scheduling the timeline chart is created The purpose of

timeline chart is to emphasize the scope of individual task Hence set of tasks are given as input to the timeline chart

The timeline chart is also called as Gantt chart The timeline chart can be developed for entire project or it can be

developed for individual functions In time line chart1 All the tasks are listed at the leftmost column2 The horizontal bars indicate the time required by the corresponding task3 When multiple horizontal bars occur at the same time on the Calendar then that means concurrency can be applied for performing the tasks

4 The diamonds indicate the milestones In most of the projects after generation of timeline chart the project tables

are prepared in project tables all the tasks are listed along with actual start and end dates and related information

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 16: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

Earned value analysis It is technique of performing quantitative analysis of the software project It provides a common value scale for every task of software project It acts as a measure for software project progress The following steps

1 The budgeted cost of work scheduled (BCWS) is an estimated cost for the work that has been scheduled2 At the completion of the project the BCWS values for all work tasks are summed to derive the budget of the project The calculation of budgeted actual cost isBAC = 1048576BCWSi for all the tasks Ii3 The value of BCWP is the sum of all the corresponding tasks that have actually been completed by a point in time on the project schedule4 The difference between BCWS and BCWP is that BCWS represents values for the project activities that are planned and BCWP represents the values of the project activities that are completed

Various types of computations in EVA1 SPI = BCWP BCWS2 SV = BCWP ndash BCWS3 Project scheduled for completion = BCWS BAC4 ACWP = 1048576 efforts expended on work task that have been completed by

time t5 CPI = BCWP ACWP

15 Risk management

It is an activity in which risks in the software project are identified Under riskmanagement plans are prepared to minimize their effects on a projectA risk is a probability that some adverse circumstance will occurThe risk management process can be carried out in following stages1 Risk identification in this phase the project product and business risks areidentified

Business risk it affects the software organizationProject risk it affects schedule or resourcesProduct risk it affects quality of software

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 17: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

2 Risk analysis under risk analysis the analysis is made on probabilities andConsequences of project product and business risks3 Risk planning in risk planning the plans are prepared to avoid or minimizethe effectsof the risk4 Risk monitoring monitoring of the risk is an activity which needs to becarried out throughout the projectManaging peoplePeople are an important asset of any software project Staff selection factors include education domain experience adaptability and personality People in the software project are motivated by interaction recognition and personal developmentIn software development groups the leaders should be competent dynamic andshould have administrative and technical supportGood project management cannot guarantee success but poor management onsignificant projects always leads to failure

16 Requirements and Specification

Functional and non-functional

Functional requirements capture the intended behavior of the system-or what the system will do This behavior may be expressed as services tasks or functions the system is required to perform

Non-functional Requirements Non-functional requirements or system qualities capture required properties of the system such as performance security maintainability etc-in other words how well some behavioral or structural aspect of the system should be accomplished

Requirements Engineering

Must be adapted to the needs of a specific process project product or people doing the work

Begins during the software engineering communication activity and continues into the modeling activity

In some cases requirements engineering may be abbreviated but it is never abandoned

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 18: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

It is essential that the software engineering team understand the requirements of a problem before the team tries to solve the problem

What is a requirementIt may range from a high-level abstract statement of a service or of a systemConstraint to a detailed mathematical functional specificationThis is inevitable as requirements may serve a dual function

bull May be the basis for a bid for a contract - therefore must be open to interpretation

bull May be the basis for the contract itself - therefore must be defined in detail

bull Both these statements may be called requirementsTypes of requirementUser requirements Statements in natural language plus diagrams of the services theSystem provides and its operational constraints Written for customersSystem requirements A structured document setting out detailed descriptions of the system services Written as a contract between client and contractorRequirements Engineering Tasks

Inception (software engineers use context-free questions to establish a basic understanding of the problem the people who want a solution the nature of the solution and the effectiveness of the collaboration between customers and developers)

Elicitation (find out from customers what the product objectives are what is to be done how the product fits into business needs and how the product is used on a day to day basis)

Elaboration (focuses on developing a refined technical model of software functions features and constraints using the information obtained during inception and elicitation)

Negotiation (requirements are categorized and organized into subsets relations among requirements identified requirements reviewed for correctness requirements prioritized based on customer needs)

Specification (written work products produced describing the function performance and development constraints for a computer-based system)

Requirements validation (formal technical reviews used to examine the specification work products to ensure requirement quality and that all work

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 19: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

products conform to agreed upon standards for the process project and products)

Requirements Management

Set of activities that help project team to identify control and track requirements and changes as project proceeds

Many of these activities are identical to those that make up the software configuration management (SCM) process

Requirements are first identified tagged with a unique identifier and classified by type (functional data behavioral interface or output)

Traceability tables (eg features source dependency subsystem interface) are developed and updated any time a requirement is modified)

Database systems are invaluable in helping software teams track requirement changes

Initiating Requirements Engineering Process

Identify stakeholders Recognize the existence of multiple stakeholder viewpoints Work toward collaboration among stakeholders These context-free questions focus on customer stakeholders overall goals

and benefits of the system o Who is behind the request for work o Who will use the solution o What will be the economic benefit of a successful solution o Is there another source for the solution needed

The next set of questions enable developer to better understand the problem and the customers perceptions of the solution

o How would you characterize good output form a successful solution o What problem(s) will this solution address o Can you describe the business environment in which the solution will

be used o Will special performance constraints affect the way the solution is

approached The final set of questions focuses on communication effectiveness

o Are you the best person to give official answers to these questions o Are my questions relevant to your problem o Am I asking too many questions o Can anyone else provide additional information o Should I be asking you anything else

Eliciting Requirements

Collaborative requirements gathering o Meetings attended by both developers and customers

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 20: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

o Rules for preparation and participation are established o Flexible agenda is used o Facilitator controls the meeting o Definition mechanism (eg stickers flip sheets electronic bulletin

board) used to gauge group consensus o Goal is to identify the problem propose solution elements negotiate

approaches and specify preliminary set of solutions requirements Quality function deployment (QFD)

o Identifies three types of requirements (normal expected exciting) o In customer meetings function deployment is used to determine value

of each function that is required for the system o Information deployment identifies both data objects and events that

the system must consume or produce (these are linked to functions) o Task deployment examines the system behavior in the context of its

environment o Value analysis is conducted to determine relative priority of each

requirement generated by the deployment activities User-scenarios

o Also known as use-cases describe how the system will be used o Developers and users create a set of usage threads for the system to

be constructed

17 Software prototyping

A model of sw to be built is called a prototype A prototype is constructed for customer and developer assessment (i) Selecting a prototyping approach The prototyping paradigm can be either close ended or open ended The close ended approach also called throw away prototyping Using this prototype serves as a rough demonstration of requirements An open ended approach called evolution of the prototyping uses the prototype as the first part of an analysis activity that will be continued into design and construction Before a close ended or open ended approach can be chosen it is necessary to determine whether the system to be built is amenable to prototyping Prototyping factors are application area application complexity customer characteristics and project characteristics(ii) Prototyping sw process In common with other types of sw development the prototyping process follows a define sw process model

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 21: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

This model indicated the processes and tasks which have to be performed during development of the prototype Process model device for this particular approach comprise the following stages1 Analysis requirements This involved the developer understanding the content and nature of the customerrsquos initial requirements2 Prototype design Here the developer should choose a suitable implementation approach for which to develop the prototype Also a design is derived for the prototype based upon the results of analysis phase3 Prototype construction This stage involves actual coding of the prototypeRapid prototyping

An evolutionary sw prototyping process is produced based on a requirement analysis of the customerrsquos problem This analysis is needed to ensure the initial version of the prototype is close enough to what the customer need to enable them to provide meaningful evaluations and criticism Each succeeding version of the prototype is produced based upon an analysis of the customerrsquos reaction to the demonstration of the previous version Delivered products are delivered from the prototypes that are accepted by the customers via an optimal optimization process Maintenance activities are sparked by new customerrsquos requirements which restart the prototyping process and extent the series of prototypes until a new stable point is reached The spiral model is well known because it combines the common knowledge of water fall model incremental method and process model work into an attractive notation even with less specific variation of the process Some advantage of this approach are that prototype of different aspects of the system can be developed concurrently and independently that each fragment is relatively small simple and easy to change and that different tools and environments can be used for different aspects The last property can be important in the short term if tools are available for solving different parts of the problem but these tools have not been integrated together into a comprehensive prototyping environment

Review questions

1) Define Software Engineering

The Application of systematic disciplined quantifier approach

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 22: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

1048576To the development operations and maintenance of software

2) What is a Process Framework

Establishes foundation for a complete software process By identifying a small number of framework activities that are applicable for

all software projects regardless of their size and complexity

3) What are the Generic Framework Activities Communication Planning Modeling Construction Deployment

4) Define Stakeholder Anyone who has stake in successful outcome of Project Business Managers end-users software engineer support people

5) How the Process Model differ from one another Based on flow of activities Interdependencies between activities Manner of Quality Assurance Manner of Project Tracking Team Organization and Roles Work Products identify an requirement identifier

6) what are the advantages of Water Fall Model

Simple and easy to use Easy to manage due to the rigidity of the model ndash each phase has specific

deliverables and a review process Phases are processed and completed one at a time Works well for smaller projects where requirements are very well

understood

7) Write out the reasons for the Failure of Water Fall Model Real Project rarely follows Sequential Flow Iterations are made in indirect manner Difficult for customer to state all requirements explicitly Customer needs more patients as working product reach only at

Deployment phase

8) What are the Drawbacks of RAD Model

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 23: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

Require sufficient number of Human Resources to create enough number of teams

Developers and Customers are not committed system result in failure Not Properly Modularized building component may Problematic Not applicable when there is more possibility for Technical Risk

9) what are the advantages of Spiral Model

High amount of risk analysis Good for large and mission-critical projects Software is produced early in the software life cycle

10) what are the disadvantages of Spiral Model

Can be a costly model to use Risk analysis requires highly specific expertise Projectrsquos success is highly dependent on the risk analysis phase Doesnrsquot work well for smaller projects

11) Define the layered Technology of software engineering

5 Quality which leads to continued improvements in the software engineering

process6 A Process defines a framework for a set of key process areas that must be

established 7 Software Engineering methods provide the technical how to for building

software8 Software Engineering Tools provide automated or semi-automated support for

the process and the methods

12) What are the different Phases of Unified Process Inception Phase Elaboration Phase Construction Phase Transition Phase Production Phase

13) What is the Objective of the Project Planning Process

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 24: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

To provide framework that enables manager to make reasonable estimates of resources cost and schedule

14) How do we compute the ldquoExpected Valuerdquo for Software SizeExpected value for estimation variable(size) S can be compute as

Weighted Average of Optimistic(Sopt)most likely(Sm)and Pessimistic(Spess) estimates

S = (Sopt+4Sm+Spess)6

15) What is an Object PointCount is determined by multiplying original number of object instances by

weighting factor and summing to obtain total object point count

16) What is the difference between the ldquoKnown Risksrdquo and Predictable Risksrdquo

Known Risks- That can be uncovered after careful evaluation of the project plan the

business and technical environment in which the product is being developed

Example Unrealistic delivery rate

Predictable Risks- Extrapolated from past project experience Example Staff turnover

17) List out the basic principles of software project scheduling Compartmentalization Interdependency Time Allocation Effort Validation Defined Responsibilities Defined Outcomes Defined Milestones

18)Why Formal Methods are not widely used Quite Time Consuming and Expensive Extensive expertise is needed for developers to apply formal methods Difficult to use as they are technically sophisticated maintenance may

become risk

19) Define Backlog Backlog is a prioritized list of project requirements or features that provide

business valuefor the manager Updates are made to the backlog if required

20) Define Sw Cost Estimation

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 25: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

Sw Cost Estimation is the process undergoing which allows the sw developer to compute the resource requirement needed to complete the sw task The resources may include ip op inquiries external interfaces external files etc

It has 2 typesa) LOC estimationb) Function Point Analysis

21) Define LOC estimationIn this estimation it estimates the no of lines of codes in the finished project It is done on the basis of experience size of previous projects size of competitor solution or by breaking problem into smaller types

22) Define Function Point AnalysisIdentify amp quantify the functionality requirement for the project and Count

the things in the external behavior that will require processing

23) What are the advantages of 4G techniques Reduction in software development time Improved productivity Provides good solution

24) What are the sw risk components Performance risk Cost risk Support risk Schedule risk

25) what is a Sw project scheduling Sw project scheduling is an activity that distributes estimated effort across the planned project duration by allocating the effort specific sw engineering tasks

26) What are umbrella activities Software project tracking and control Formal reviews SQA SCM Document preparation amp production Reusability management Measurement Risk management

REFERENCES

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997

Page 26: chettinadtech.ac.inchettinadtech.ac.in/storage/12-07-11/12-07-11-11-37-4… · Web viewUNIT I INTRODUCTION. Software Engineering paradigms – Waterfall Life cycle model – Spiral

1 Roger S Pressman ldquoSoftware Engineering A Practitioner Approachrdquo Sixthedition McGrawHill 20052 I Sommerville ldquoSoftware Engineeringrdquo Sixth Edition Addison Wesley-Longman20043 PankajJalote ldquoAn Integrated approach to Software Engineeringrdquo SecondEdition Springer Verlag 1997


Recommended