51

Introduction,Software Process Models, Project Management

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Introduction,Software Process Models, Project Management
Page 2: Introduction,Software Process Models, Project Management

What is software?Computer programs and associated

documentation

Software products may be developed for a particular customer or may be developed for a general market

Software products may beGeneric - developed to be sold to a range of

different customersCustom - developed for a single customer

according to their specification

Page 3: Introduction,Software Process Models, Project Management

Software vs. ProgramsSoftware ProgramsSoftware is collection of

programs & documentation.

Software is used by the customers or users

Software is built by a team of engineers or developers.

Software needs to be tested well.

Set of instructions to do a particular task.

Programs are used by developers

Only one or two developers are needed.

Programs do not need extensive or detailed testing.

Page 4: Introduction,Software Process Models, Project Management

Software EngineeringSoftware engineering is the application of

engineering techniques to the process of software development so as to build a software that is cheaper ,better and faster. (COST, QUALITY & SCHEDULE)

It is used to solve such problems where it is impossible to visualize all the problems in the beginning.

Page 5: Introduction,Software Process Models, Project Management

Features / Attributes of Software

Page 6: Introduction,Software Process Models, Project Management

Features / Attributes of Software• Functionality- The capability to provide functions

which meet stated and implied needs when the software is used

• Reliability- The capability to maintain a specified level of performance

• Usability.-The capability to be understood, learned, and used

• Efficiency- The capability to provide appropriate performance relative to the amount of resources used

Page 7: Introduction,Software Process Models, Project Management

Features / Attributes of SoftwareMaintainability- The capability to be

modified for purposes of making corrections, improvements, or adaptation

Portability- The capability to be adapted for different specified environments without applying actions or means other than those provided for this purpose in the product

Page 8: Introduction,Software Process Models, Project Management

Characteristics of a software1. Software is developed or engineered, it is not

manufactured.

2. Software doesn't "wear out.“

3. Software is “malleable” ( Modifiable or Flexible )

4. Software is built from scratch or custom built.

5. A software component should be designed and implemented so that it can be reused in many different programs

Page 9: Introduction,Software Process Models, Project Management

Components of a SoftwareSoftware is not only the code it consist :-

Code part or the Developed Program.The Installation or Setup partThe Documentation part.

Architectural/ Design Documents Technical Documents. End – User Documents.

Page 10: Introduction,Software Process Models, Project Management

Difference between software engineering and system engineering

Software engineering is part of System engineering

System engineering is concerned with all aspects of computer-based systems development including hardware, software and process engineering

Page 11: Introduction,Software Process Models, Project Management

Software Applications1. System software2. Real-time software3. Business software4. Engineering and scientific software5. Embedded software6. Personal computer software7. Web-based software8. Artificial intelligence software

Page 12: Introduction,Software Process Models, Project Management

Software engineering is a layered technology.

Page 13: Introduction,Software Process Models, Project Management

Software engineering is a layered technology.Any engineering approach (including software

engineering) must rest on an organizational commitment to quality.

Process defines a framework for a set of key process areas (KPAs) that must be established for effective delivery of software engineering technology.

Software engineering methods provide the technical how-to's for building software.

Software engineering tools provide automated or semi-automated support for the process and the methods.

CASE Tools

Page 14: Introduction,Software Process Models, Project Management

What is CASE (Computer-Aided Software Engineering)

Software systems which are intended to provide automated support for software process activities. CASE systems are often used for method support

Upper-CASETools to support the early process activities

of requirements and designLower-CASE

Tools to support later activities such as programming, debugging and testing

Page 15: Introduction,Software Process Models, Project Management

Process, Project and product A process is a sequence of steps performed

for a given purpose

A software project is one instance of this problem, and the development process is what is used to achieve this purpose.

Product is the final out come of the project.

Page 16: Introduction,Software Process Models, Project Management

What is a software process?A set of activities whose goal is the

development or evolution of software. It consists of various phases.

Basic phases in all software processes are:•Requirement Analysis•Software Design •Coding•Testing•Installation & Maintenance

Page 17: Introduction,Software Process Models, Project Management

Software Processes

Page 18: Introduction,Software Process Models, Project Management

Software Development Process ModelsTo solve actual problems in an industry setting,

a software engineer or a team of engineers must incorporate a development strategy that encompasses the process, methods, and tools layers .This strategy is often referred to as a process model or a software engineering paradigm. A process model for software engineering is chosen based on the nature of the project and application, the methods and tools to be used, and the controls and deliverables that are required.

Page 19: Introduction,Software Process Models, Project Management

Types of Process ModelsWaterfall or Classic Life Cycle or Linear

Sequential ModelPrototyping ModelIncremental or Iterative modelSpiral Model

Page 20: Introduction,Software Process Models, Project Management

Waterfall ModelProblem

Definition

Requirement Analysis

Design

Coding

Testing

Installation

Maintenance &

Support

Page 21: Introduction,Software Process Models, Project Management

AdvantagesAs well as the above, some prefer the waterfall

model for its simple & conceptually straightforward approach

The large and complex task of building the software is broken into smaller tasks

Separating gives a better handle to the engineers and managers in dealing with the complexity of the problem.

When the activities of a phase are completed, there should be some product that is produced by that phase usually in the form of documents

Page 22: Introduction,Software Process Models, Project Management

AdvantagesBug found in the early stages is cheaper in

terms of money, effort and time, to fix than the same bug found later on in the process.

Time spent early on making sure that requirements and design are absolutely correct will save you much time and effort later.

A further argument for the waterfall model is that it places emphasis on documentation

Page 23: Introduction,Software Process Models, Project Management

LimitationsRequirements have to be finalized before the

design starts. It is mostly difficult for the user to tell all their requirement in the beginning but requirement keep on changing so real project can’t follow the sequential model always.

The working software will be available very late in the project time span. So the costumers need to have patience .Also if a major mistake is not found till that time it can cost a lot of problems.

Page 24: Introduction,Software Process Models, Project Management

LimitationsIt encourages the user to ask for even those

features which may not be used later on.It’s a document driven process.

Page 25: Introduction,Software Process Models, Project Management

Documents generated by Waterfall modelRequirements document ( SRS )Project planDesign documents (architecture, system,

detailed )Test plan and test reports ( Test Cases)Final codeSoftware manuals (e.g., user manual,

installation manual etc.)

Page 26: Introduction,Software Process Models, Project Management

Prototype Model

Page 27: Introduction,Software Process Models, Project Management

Prototype ModelA small working model is builtBy using this prototype, the client can get an actual feel

of the system, which can enable the client to better understand the requirements of the desired system.

Development of the prototype obviously undergoes design, coding, and testing, but each of these phases is not done very formally or thoroughly

Instead of freezing the requirements a throwaway prototype is built to help understand the requirements

After the requirements are made clear , this model is discarded.

Page 28: Introduction,Software Process Models, Project Management

Prototype ModelIt will reduce the cost of the actual software

development.Changes will be less in actual software as

requirements will get clear.The quality of final software is likely to be far

superior, as the experience while developing the prototype will enable us to create a better design, write better code, and do better testing.

Page 29: Introduction,Software Process Models, Project Management

Evolutionary Process ModelsIn these model, product keeps on changing

or evolving. These are of two types-Incremental or IterativeSpiral

Page 30: Introduction,Software Process Models, Project Management

The Incremental / Iterative model

Page 31: Introduction,Software Process Models, Project Management

The Incremental / Iterative modelThe incremental model combines elements of

the linear sequential model with the iterative philosophy of prototyping.

The software is built in parts called increments.

The first increment is often a core product i.e. basic requirements are addressed.

The user uses it and gives a feedback on basis of which plan for the next increment is prepared.

Page 32: Introduction,Software Process Models, Project Management

The Incremental / Iterative modelIt is used when the main focus is on

delivering an operational product with each increment ,when staffing is not available for a complete implementation.

Page 33: Introduction,Software Process Models, Project Management

Spiral Model

It is a combination of iterative & prototyping model .

In spiral model software is developed in a series of incremental releases.

In early iterations the release may be a paper model or a prototype .

In later iterations, the release may be more complete versions of the software.

Page 34: Introduction,Software Process Models, Project Management

Spiral Model

Page 35: Introduction,Software Process Models, Project Management

Spiral Model - Tasks Customer communication—tasks required to establish effective

communication between developer and customer. Planning—tasks required to define resources, timelines, and other

project related information. Risk analysis—tasks required to assess both technical and

management risks. Engineering—tasks required to build one or more representations

of the application. Construction and release—tasks required to construct, test,

install, and provide user support (e.g., documentation and training ). Customer evaluation—tasks required to obtain customer

feedback based on evaluation of the software representations created during the engineering stage and implemented during the installation stage.

Page 36: Introduction,Software Process Models, Project Management

Advantages/ Disadvantages of Spiral ModelAdvantages of spiral model

Realistic model-It is a realistic model for development of large scale software system.

Customer & developer under stand the requirement & risks more clearly.

Risk reduction- Prototyping is done at any stage in the product development

Risks-risks are analyzed at every stage It maintains systematic approach of waterfall model and

applies it in an iterative manner. This represents the real world closer.

Page 37: Introduction,Software Process Models, Project Management

Advantages/ Disadvantages of Spiral ModelDisadvantages of spiral model

It is not a complete solution for every situation.Expertise is required for risk analysis Difficult to convince customers about the evolutionary

nature. If a risk is not analyzed or found in early cycles, it may

become a major problem later on. It is not as widely used as water fall and prototyping

models.

Page 38: Introduction,Software Process Models, Project Management

FOURTH GENERATION TECHNIQUESThe term fourth generation techniques (4GT)

includes a number of software tools that enables the software engineer to build a high quality software with ease.

4GT paradigm includes some or all of the following tools Languages for database query (SQL) Report generation Code generation Spreadsheets Automated generation of web pages in HTML

etc

Page 39: Introduction,Software Process Models, Project Management

FOURTH GENERATION TECHNIQUES4GT begins with a requirements gathering stepThe customer may be unsure of what is required or

may be ambiguous and may be unable to specify information in a manner that a 4GT tool can consume.

For small applications, it may be possible to move directly from the requirements gathering step to implementation using a nonprocedural fourth generation language (4GL).

For larger efforts, it is necessary to develop a design strategy for the system, even if a 4GL is to be used

Using of 4GL tool enables automatic code generation.

Page 40: Introduction,Software Process Models, Project Management

Merits of 4GTTime required to produce software is greatly

reduced for small and intermediate applications

The amount of design and analysis for small applications is also reduced.

Testing the software is also easier using these tools.Productivity is highly improved for people

who build the software

Page 41: Introduction,Software Process Models, Project Management

Demerits of 4GTSome 4GT tools are not very easy to use as

compared to traditional programming languages.

Some time code generated by such tools is not efficient

Maintenance of large software systems made using 4GT is not easy.

Cost can be high.

Page 42: Introduction,Software Process Models, Project Management

Project ManagementProcess Model decides the phases and tasks to be done, it

does not specify things like how long each phase should last, or how many resources should be assigned to a phase, or how a phase should be monitored.

To meet the cost, quality, and schedule objectives, resources have to be properly allocated to each activity for the project.

Project management involves the planning, monitoring, and control of the people, process, and events that occur in the life cycle of software development.

Importance: Software development is a complex task and many people are involved in it for a long period of time.

Page 43: Introduction,Software Process Models, Project Management

Four P’s of project management1. People2. Product 3. Process 4. Project

Page 44: Introduction,Software Process Models, Project Management

People

Page 45: Introduction,Software Process Models, Project Management

PeoplePlayersSenior managers who define the business issues that

often have significant influence on the project. Project (technical) managers who must plan, motivate,

organize, and control the practitioners who do software work.

Practitioners who deliver the technical skills that are necessary to engineer a product or application.

Customers who specify the requirements for the software to be engineered

End-users who interact with the software once it is released for production use.

Page 46: Introduction,Software Process Models, Project Management

Qualities of Effective Team Leader or Project ManagerMotivationOrganizationIdeas or innovationProblem solvingTeam building

Page 47: Introduction,Software Process Models, Project Management

ProductHere we define the scope and objectives of

the system. Before project planning objective and scope should be finalized.

Scope can be define by answering the following questions

How the software will fit into current system? What will be the input and output of the system? What process function will perform to transferred

input and output? Scope should be clear and understandable

Page 48: Introduction,Software Process Models, Project Management

Alternative solutions should be considered and the best approach should be selected.

Problem Decomposition The functionality that must be delivered The process that will be used to deliver it.

Page 49: Introduction,Software Process Models, Project Management

ProcessThe Linear Sequential ModelThe Prototyping ModelThe Incremental ModelThe Spiral ModelThe Fourth Generation Techniques Model

Page 50: Introduction,Software Process Models, Project Management

ProjectIn order to manage a successful software

project, we must understand what can go wrong.1. Software people don’t understand their customer’s needs.2. The product scope is poorly defined.3. Changes are managed poorly.4. The chosen technology changes.5. Business needs change [or are ill-defined].6. Deadlines are unrealistic.7. Users are resistant.8. Sponsorship is lost [or was never properly obtained].9. The project team lacks people with appropriate skills.10. Managers [and practitioners] avoid best practices and lessons learned.

Page 51: Introduction,Software Process Models, Project Management

Project1. Start on the right foot :- setting realistic

objects and expectations for everyone who will be involved in the project and building the right team

2. Maintain momentum3. Track the progress4. Make smart decisions5. Conduct a post mortem analysis