L2 Unit 1 Introduction
L2 Unit 1 Introduction
L2 Unit 1 Introduction
CS3CO26
By
Dr. Ratnesh Litoriya
Introduction
What is Software?
change
actual curve
idealized curve
Time
Software Applications (Varieties)
system software
application software
engineering/scientific
software
embedded software
product-line software
WebApps (Web
applications)
Mobile Apps
AI software
Software—New Categories
Open world computing—pervasive, distributed computing
Ubiquitous computing—wireless networks
Netsourcing—the Web as a computing engine
Open source—”free” source code open to the computing
community (a blessing, but also a potential curse!)
Also …
Data mining
Grid computing
Cognitive machines
tools
methods
process model
a “quality” focus
Software Engineering
A Process Framework
Process framework
Framework activities
work tasks
work products
milestones & deliverables
QA checkpoints
Umbrella Activities
Framework Activities
Communication
Planning
Modeling
Analysis of requirements
Design
Construction
Code generation
Testing
Deployment
Umbrella Activities
Software project management
Formal technical reviews
Software quality assurance
Software configuration management
Work product preparation and production
Reusability management
Measurement
Risk management
Adapting a Process Model
the overall flow of activities, actions, and tasks and the
interdependencies among them
the degree to which actions and tasks are defined within each
framework activity
the degree to which work products are identified and required
the manner which quality assurance activities are applied
the manner in which project tracking and control activities are
applied
the overall degree of detail and rigor with which the process is
described
the degree to which the customer and other stakeholders are
involved with the project
the level of autonomy given to the software team
the degree to which team organization and roles are
prescribed
Understand the Problem
Who has a stake in the solution to the problem? That
is, who are the stakeholders?
What are the unknowns? What data, functions, and
features are required to properly solve the problem?
Can the problem be compartmentalized? Is it possible
to represent smaller problems that may be easier to
understand?
Can the problem be represented graphically? Can an
analysis model be created?
Plan the Solution
Have you seen similar problems before? Are there
patterns that are recognizable in a potential solution? Is
there existing software that implements the data,
functions, and features that are required?
Has a similar problem been solved? If so, are elements
of the solution reusable?
Can subproblems be defined? If so, are solutions
readily apparent for the subproblems?
Can you represent a solution in a manner that leads to
effective implementation? Can a design model be
created?
Carry Out the Plan
Does the solution conform to the plan? Is source
code traceable to the design model?
Is each component part of the solution provably
correct? Has the design and code been reviewed, or
better, have correctness proofs been applied to
algorithm?
Examine the Result
Is it possible to test each component part of the
solution? Has a reasonable testing strategy been
implemented?
Does the solution produce results that conform to the
data, functions, and features that are required? Has
the software been validated against all stakeholder
requirements?