software development o & c

53
Software Development Challenges & Opportunities “You’ve got to be very careful if you don’t know where you’re going, because you might not get there.” Yogi Berra

Upload: amit-patil

Post on 05-Jul-2015

55 views

Category:

Technology


1 download

DESCRIPTION

Software development Opportunities and Challenges

TRANSCRIPT

Page 1: Software development o & c

Software Development

Challenges & Opportunities

“You’ve got to be very careful if you don’t know where you’re going, because you might not get there.”

Yogi Berra

Page 2: Software development o & c

Topics Covered in PresentationSoftware Lifecycle – At a glanceElements and Principles of Software Development.Software Development ActivitiesChallenges with Software DevelopmentProblem solving ApproachModel driven development strategyRisk vs Opportunity assessmentSoftware Development LifecyclePhases in developmentProblems with the approachGlobal and Legal ChallengesOpportunities in working with specific approach.

Page 3: Software development o & c

• About

• Technology

• Client Base

• Services

Page 4: Software development o & c

Project analysis

Application for buying and selling

◦ Mobile application

◦ Search Adv.

◦ Post adv.

Category

Country

Analysis ?

Page 5: Software development o & c

Software Life Cycle

Software construction goes through a

progression of states:

5

Conception Adulthood RetirementChildhood

Pre-

DevelopmentDevelopment

Post-

Development

Page 6: Software development o & c

Elements of Software

Development User Requirements

Software Requirements: target systems, languages

Architectural Design: target systems

Detailed Software Design: language, structure, libraries

Implementation: languages, quality, version control

Unit Testing

Integration Testing

System Testing

Deployment and Acceptance Testing

Maintenance: regression testing, quality control, bug tracking, version control

Documentation: paper, online (HTML/PDF), 6

Page 7: Software development o & c

Principles of System

Development Get the system users involved.

Use a problem-solving approach.

Establish phases and activities.

Document through development.

Establish standards.

Manage the process and projects

Justify systems as capital investments.

Don’t be afraid to cancel or revise scope.

Divide and conquer.

Design systems for growth and change.

3-7

Page 8: Software development o & c

Possible Identification of Software Development

Activities

8

Requirements AnalysisWhat is the problem?

System DesignWhat is the solution?

Program Design

What are the mechanismsthat best implement thesolution?

Program ImplementationHow is the solutionconstructed?

Testing Is the problem solved?

Delivery Can the customer use the solution?

Maintenance Are enhancements needed?

Problem

Domain

Implementation

Domain

Page 9: Software development o & c

Participants in Systems

Development

Who participates in the

system development life

cycle?

Page 10: Software development o & c

Inherent Challenges with Software

Development Requirements are complex

◦ The client usually does not know all the functional requirements in advance

Requirements may be changing

◦ Technology enablers introduce new possibilities to deal with nonfunctional

requirements

Frequent changes are difficult to manage

◦ Identifying milestones and cost estimation is difficult

There is more than one software system

◦ New system must often be backward compatible with existing system

(―legacy system‖)

◦ Phased development: Need to distinguish between the system under

development and already released systems 10

Page 11: Software development o & c

Manage the Process and ProjectsProcess management –

an ongoing activity that documents, manages,oversees the use of, and improves an organization’schosen methodology (the ―process‖) for systemdevelopment. Process management is concernedwith phases, activities, deliverables, and qualitystandards should be consistently applied to allprojects.

Project management

is the process of scoping, planning, staffing,organizing, directing, and controlling a project todevelop an information system at a minimum cost,within a specified time frame, and with acceptablequality.

3-

11

Page 12: Software development o & c

Don’t Be Afraid to Cancel

or Revise ScopeCreeping commitment –

a strategy in which feasibility and risks are continuously reevaluatedthroughout a project. Project budgets and deadlines are adjustedaccordingly.

Risk management –the process of identifying, evaluating, and controlling what might gowrong in a project before it becomes a threat to the successfulcompletion of the project or implementation of the informationsystem. Risk management is drive by risk analysis or assessment.

3-

12

Page 13: Software development o & c

Where Do Systems Development

Projects Come From?

Problem –

◦ an undesirable situation that prevents the organization from fully

achieving its purpose, goals, and/or objectives.

Opportunity –

◦ a chance to improve the organization even in the absence of an

identified problem.

Directive –

◦ a new requirement that is imposed by management,

government, or some external influence.

3-

13

Page 14: Software development o & c

Where Do Systems Development

Projects Come From? Planned Projects

◦ An information systems strategy plan

has examined the business as a whole to identify those system development projects that will return the greatest strategic (long-term) value to the business

◦ A business process redesign

has thoroughly analyzed a series of business processes to eliminate redundancy and bureaucracy and to improve efficiency and value added. Not it is time to redesign the supporting information system for those redesigned business processes.

3-

14

Page 15: Software development o & c

Use a Problem-Solving Approach

Classical Problem-solving approach

1. Study and understand the problem, its context,

and its impact.

2. Define the requirements that must be meet by any

solution.

3. Identify candidate solutions that fulfill the

requirements, and select the ―best‖ solution.

4. Design and/or implement the chosen solution.

5. Observe and evaluate the solution’s impact, and

refine the solution accordingly.

3-

15

Page 16: Software development o & c

The PIECES Problem-Solving

FrameworkP the need to improve performance

I the need to improve information (and data)

E the need to improve economics, control costs, or increase profits

C the need to improve control or security

E the need to improve efficiency of people and processes

S the need to improve service to customers, suppliers, partners, employees, etc.

Page 17: Software development o & c

Model-Driven Development Strategy

Model-driven development –◦ a system development strategy that emphasizes the drawing of system models

to help visualize and analyze problems, define business requirements, and design information systems.

◦ Process modeling – a process-centered technique popularized by the structured analysis and design methodology that used models of business process requirements to derive effective software designs for a system.

◦ Data modeling – a data-centered technique used to model business data requirements and design database systems that fulfill those requirements.

◦ Object modeling – a technique that attempts to merge the data and process concerns into singular constructs called objects. Object models are diagrams that document a system in terms of its objects and their interactions.

3-

17

Page 18: Software development o & c

Logical vs. Physical Models

Logical model –

a pictorial representation that depicts what a

system is or does.

Physical model –

a technical pictorial representation that depicts

what a system is or does and how the system is

implemented.

3-

18

Page 19: Software development o & c

Model-Driven Development

Strategy

Requirements often

more thorough

Easier to analyze

alternatives

Design specifications

often more stable and

flexible

Systems can be

constructed more

correctly the first time

Time consuming

Models only as good

as users'

understanding of

requirements

Reduces users' role

because pictures are

not software

Can be Inflexible

3-

19

Advantages Disadvantages

Page 20: Software development o & c

Level

5

OPTIMIZED

Level

4

MANAGED

Level

3

DEFINED

Level

2

REPEATABLE

RISK

COMPETITIVENESS

Level

1

INITIAL

Page 21: Software development o & c

Opportunity Principle 1:

◦ Get the Owners and Users Involved

Principle 2:

◦ Use a Problem-Solving Approach

Principle 3:

◦ Establish Phases and Activities

Principle 4:

◦ Justify Systems as Capital Investments

Principle 5:

◦ Don’t Be Afraid to Cancel or Revise Scope

Page 22: Software development o & c

The System Development Life Cycle

What are guidelines for system development?

Involve users (anyone for whom

system is being built)

Develop clearly defined standards (procedures

company expects employees to follow)

Arrange tasks into phases (groups

of activities)

Page 23: Software development o & c

What is a systems analyst?

Responsible for designing and

developing information system

Liaison between users and IT

professionals

Page 24: Software development o & c

What is the project team?

Consists of users, systems analyst, and other IT professionals

Formed to work on project from beginning to end

Project leader—one member of the team who

manages and controls project budget and

schedule

Page 25: Software development o & c

The System Development Life

CycleWhat are some reasons to create or modify an information system?

Competition can

lead to change

To improve

existing system

Outside group may

mandate change

To correct problem

in existing system

Page 26: Software development o & c

Presented to

steering

committee,

which decides

how system will

be developed

What is the system proposal?

Assesses

feasibility

of each

alternative

solution

Recommen

ds the most

feasible

solution for

the project

Formal request for new or modified information system Also called project request

Page 27: Software development o & c

Development Stages

1. Analysis

2. Design

3. Implementation

4. Testing

5. Documentation

6. Evaluation

7. Maintenance

Page 28: Software development o & c

What is the analysis phase?

Read and understand the problem

Interview client to be clear about the problem

Develop a software specification: Clear statement of problem

Basis of legal agreement

Agreed between analyst and client

Conduct preliminary

investigation, also

called feasibility

study

Perform detailed

analysis

Page 30: Software development o & c

Questioning

Write a program which calculates and displays the average of a set of numbers

Questions...?

Page 31: Software development o & c

Questioning

• Write a program which calculates and displays the average of a set of numbers

• Questions:

–How many numbers in set?

–What is maximum number?

–Are numbers integers, or real?

–What output device(s) to be used?

Page 32: Software development o & c

Inputs, Processes and Outputs

Page 33: Software development o & c

Inputs, Processes and Outputs

Page 34: Software development o & c

Inputs, Processes and Outputs

Page 35: Software development o & c

Feasibility Study

Measure of

how suitable

system

development

will be to the

company

Operational

feasibility

Schedule

feasibility

Four feasibility

tests:

Technical

feasibility

Economic

feasibility

(also called

cost/benefit

feasibility)

Page 36: Software development o & c

Begins when steering committee receives project request

Steering

committee

decision-making

body for the

company

Function of committee:

Review and

approve project

requests

Allocate

resources

Form project

development

team for each

approved

project

Prioritize

project requests

What is the planning phase?

Page 37: Software development o & c

What are possible solutions?

Buy packaged software—prewritten

software available for purchase

Outsource—have outside source

develop software

Write own custom software—software

developed at user’s request

Vertical market

software—designed

for particular industry

Horizontal market

software—meets

needs of many

companies

Page 38: Software development o & c

Logical Design PhaseLogical design –

◦ the translation of business user requirements into a system model that depicts only the business requirements and not any possible technical design or implementation of those requirements. Common synonyms include conceptual design and essential design.

System model –◦ a picture of a system that represents reality or a desired

reality. System models facilitate improved communication between system users, system analysts, system designers, and system builders.

Analysis paralysis –◦ a satirical term coined to describe a common project

condition in which excessive system modeling dramatically slows progress toward implementation of the intended system solution.

Page 39: Software development o & c

Physical Design & Integration

PhasePhysical design –◦ the translation of business user requirements into a system

model that depicts a technical implementation of the users’ business requirements. Common synonyms include technical design or implementation model.

Two extreme philosophies of physical design

Design by specification –◦ physical system models and detailed specification are

produced as a series of written (or computer-generated) blueprints for construction.

Design by prototyping –◦ Incomplete but functioning applications or subsystems (called

prototypes) are constructed and refined based on feedback from users and other designers. 3-

39

Page 40: Software development o & c

Construction and Testing Phase

Construct and test system components

◦ Software

Purchased

Custom-built

◦ Databases

◦ User and System Interfaces

◦ Hardware

◦ Networks

3-

40

Page 41: Software development o & c

Installation and Delivery Phase

Deliver the system into operation

(production)

Deliver User training

Deliver completed documentation

Convert existing data

3-

41

Page 42: Software development o & c

What is the support phase?

Conduct post-implementation

system review—meeting to find

out if information system is

performing according to

expectations

Identify errors

Identify enhancements

Monitor system performance

Provides ongoing

assistance after

system is

implemented

The ongoing

technical support

for users of a

system, as well as

the maintenance

required to deal

with any errors,

omissions, or new

requirements that

may arise.

Page 43: Software development o & c

System Development Documentation, Repository, and Presentations

3-

43

Page 44: Software development o & c

Challenges in the Development

Phases Difficulty of accommodating change

One phase has to be complete before moving onto the next phase

Inflexible partitioning of the project into distinct stages makes it difficult to respond

to changing customer requirements.

Only appropriate when the requirements are well-understood and changes will be

fairly limited during the design process.

Few business systems have stable requirements.

Mostly used for large systems engineering projects where a system is developed

at several sites.

Not targeting all goals of Model-Driven Engineering

Using model transformations which are not fully executable

Not testing the model

Insufficient tooling

44

Page 45: Software development o & c

Software Industry Challenges

2/21/2014 Seton Hall University

Costs

Up

Revenues

Down

Market

Expectations

Up

Need solutions that areflexible, expansible, survivable, sustainable, affordable and secure

Complexity

UpStockholders : ROICustomers: ValueUsers : Functionality & Quality

Intervals

Shrinking

Page 46: Software development o & c

Legal challenges

Intellectual property rights—general

◦ Application and tools

Can you reuse your component?

Can you use it in a competitor’s application?

◦ Proprietary confidential information

Library source code, proprietary tools, data, …

◦ Test suites and case studies

Performance of partner applications or process

◦ Overlapping alliances and conflicts

Page 47: Software development o & c

Legal Challenges

Intellectual property rights

◦ Right to publish and disseminate

Revealing experimental results

◦ Indirect intellectual property

Insights developed in

collaborative process

Process and practices

Whose law governs what?

Page 48: Software development o & c

Opportunities? Faster

More cost-effective

Leads to increased quality

less error-prone

leads to meaningful validation

results in software being less sensitive to changes in personnel

empowers domain experts

lets advanced programmers focus on the hard stuff

bridges the gap between business and IT

in software being less sensitive to changes in business requirements

results in software being less sensitive to changes in technology

really enforces architecture

captures domain knowledge

provides up-to-date documentation

enables to focus on business problems instead of technology

provides you the ability to see your system at various levels

Page 49: Software development o & c

Our Learning's.. Development and maintenance processes our

software portfolio

Establish good software development practices

Capture/rescue important legacy software

Improve the quality of our software base:◦ language conformance.

◦ portability (over many platforms and architectures)

◦ design and structure

◦ testing

◦ maintenance

◦ improve software quality

Where possible use tools to automate, to make the process easier and more measurable

Ensure our developers adopt some good practices and develop their own process of improvement!

49

Page 50: Software development o & c

What do we learn? Much of Best Practice is common sense – however

is it formalised common sense

The essence of Best Practice is in definition anddocumentation

Software development should be managed like anyproject

The Best Practice outlined is a framework in whichto work

The process steps have not been defined – theseare the remit of the project to defined, implementand audit

There are some tools that can aid a process step

There is no magic bullet – software anddevelopment process improvement is a long termactivity

50

Page 51: Software development o & c

Interact – with unknown

Play

Page 52: Software development o & c

Job portal

Candidate Registration

Upload CV

Upload documents

Search CV

Page 53: Software development o & c

Questions ?

WhiteCodewww.whitecode.co.in

[email protected]