Download - 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
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.
• About
• Technology
• Client Base
• Services
Project analysis
Application for buying and selling
◦ Mobile application
◦ Search Adv.
◦ Post adv.
Category
Country
Analysis ?
Software Life Cycle
Software construction goes through a
progression of states:
5
Conception Adulthood RetirementChildhood
Pre-
DevelopmentDevelopment
Post-
Development
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
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
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
Participants in Systems
Development
Who participates in the
system development life
cycle?
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
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
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
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
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
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
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.
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
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
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
Level
5
OPTIMIZED
Level
4
MANAGED
Level
3
DEFINED
Level
2
REPEATABLE
RISK
COMPETITIVENESS
Level
1
INITIAL
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
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)
What is a systems analyst?
Responsible for designing and
developing information system
Liaison between users and IT
professionals
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
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
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
Development Stages
1. Analysis
2. Design
3. Implementation
4. Testing
5. Documentation
6. Evaluation
7. Maintenance
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
Questioning
Write a program which calculates and displays the average of a set of numbers
Questions...?
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?
Inputs, Processes and Outputs
Inputs, Processes and Outputs
Inputs, Processes and Outputs
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)
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?
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
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.
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
Construction and Testing Phase
Construct and test system components
◦ Software
Purchased
Custom-built
◦ Databases
◦ User and System Interfaces
◦ Hardware
◦ Networks
3-
40
Installation and Delivery Phase
Deliver the system into operation
(production)
Deliver User training
Deliver completed documentation
Convert existing data
3-
41
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.
System Development Documentation, Repository, and Presentations
3-
43
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
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
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
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?
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
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
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
Job portal
Candidate Registration
Upload CV
Upload documents
Search CV