1/57
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced |
|---|
No study sessions yet.
Software
(1) instructions (computer programs) that when executed provide desired features, function, and performance;
(2) data structures that enable the programs to adequately manipulate information and
(3) documentation that describes the operation and use of the programs.
doesn't "wear out." it deteriorates
instructions
when executed provide desired features, function, and performance
data structures
enable the programs to adequately manipulate information
documentation
describes the operation and use of the programs.
developed or engineered
Software is _____, it is not manufactured in the classical sense.
custom-built
Although the industry is moving toward component-based construction, most software continues to be _____.
Wear
often called the “bathtub curve” as it looks like a bathtub as we normally see in our bathrooms.
is applicable only for hardware
It refers that, at infant state of the life of hardware the failure rate is so high having many defects.
By time, after customization & repairing the defects, it becomes idealized or gets into the steady state or idealized state and again continues.
But after that, with respect to time, the failure rate rises gradually.
As more time passes, at one time the hardware becomes totally unusable.
These may be happened by (5)
extreme usage,
excessive temperature,
dust,
vibration,
high voltage
deterioration
At its infant state, software has high failure rate same as hardware.
By time, after customization & repairing the defects, it becomes idealized or gets into the steady state or idealized state.
The Idealized Curve shows the Idealized State.
And the Actual Curve shows the increased failure rate gradually due to the defeats during software customization and modification (Change).
This (change) causes Software _____.
Software defects may be happened by the (3):
unfulfilled user demands,
slow,
bugs
Idealized Curve
shows the Idealized State.
Actual Curve
shows the increased failure rate gradually due to the defeats during software customization and modification (Change).
system software,
application software,
engineering/scientific software,
embedded software,
product-line software,
WebApps (Web applications),
AI software
Software Applications (7)
Open world computing,
Ubiquitous computing,
Netsourcing,
Open source,
Data mining,
Grid computing,
Cognitive machines,
Software for nanotechnologies
Software—New Categories (8)
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
adapted
Legacy Software: Why must it change?
software must be _____ to meet the needs of new computing environments or technology.
enhanced
Legacy Software: Why must it change?
software must be _____ to implement new business requirements.
extended to make it interoperable
Legacy Software: Why must it change?
software must be _____ with other more modern systems or databases.
re-architected
Legacy Software: Why must it change?
software must be _____ to make it viable within a network environment.
Network intensiveness,
Concurrency,
Unpredictable load,
Performance,
Availability,
Data driven,
Content sensitive,
Continuous evolution,
Immediacy,
Security,
Aesthetics
Characteristics of WebApps (11)
Network intensiveness
A WebApp resides on a network and must serve the needs of a diverse community of clients.
Concurrency
A large number of users may access the WebApp at one time.
Unpredictable load
The number of users of the WebApp may vary by orders of magnitude from day to day.
Performance
If a WebApp user must wait too long (for access, for server-side processing, for client-side formatting and display), he or she may decide to go elsewhere.
Availability
Although expectation of 100 percent _____ is unreasonable, users of popular WebApps often demand access on a “24/7/365” basis.
Data driven
The primary function of many WebApps is to use hypermedia to present text, graphics, audio, and video content to the end-user.
Content sensitive
The quality and aesthetic nature of content remains an important determinant of the quality of a WebApp.
Continuous evolution
Unlike conventional application software that evolves over a series of planned, chronologically-spaced releases, Web applications evolve continuously.
Immediacy
Although _____—the compelling need to get software to market quickly—is a characteristic of many application domains, WebApps often exhibit a time to market that can be a matter of a few days or weeks.
Security
Because WebApps are available via network access, it is difficult, if not impossible, to limit the population of end-users who may access the application.
Aesthetics
An undeniable part of the appeal of a WebApp is its look and feel.
concerted effort
Software Engineering: Some realities
a _____ should be made to understand the problem before a software solution is developed
design
Software Engineering: Some realities
____ becomes a pivotal activity because it serves as the bridge between ideas and their execution.
high quality
Software Engineering: Some realities
software should exhibit _____
maintainable
Software Engineering: Some realities
software should be _____
Software engineering
seminal definition:
is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.
Software engineering
IEEE definition:
The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.
process framework
framework activities and umbrella activities
Communication,
Planning,
Modeling,
Construction,
Deployment
framework activities (5)
Modeling
Analysis of requirements
Design
Construction
Code generation
Testing
Umbrella activities
are a series of steps or procedures followed by a software development team to maintain the progress, quality, changes, and risks of complete development tasks.
These steps of _____ will evolve through the phases of the generic view of software development.
Software project management,
Formal technical reviews,
Software quality assurance,
Software configuration management,
Work product preparation and production,
Reusability management,
Measurement,
Risk management
Umbrella Activities (8)
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
George Polya
is known as the father of modern problem solving,
George Polya
He suggests:
Understand the problem (communication and analysis).
Plan a solution (modeling and software design).
Carry out the plan (code generation)
Examine the result for accuracy (testing and quality assurance).
Understand the problem
communication and analysis
Plan a solution
modeling and software design
Carry out the plan
code generation
Examine the result for accuracy
testing and quality assurance
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?
The Reason It All Exists,
KISS (Keep It Simple, Stupid!),
Maintain the Vision,
What You Produce, Others Will Consume,
Be Open to the Future,
Plan Ahead for Reuse,
Think
Hooker’s General Principles (7)
Software Myths
Affect managers, customers (and other non-technical stakeholders) and practitioners
Are believable because they often have elements of truth, but invariably lead to bad decisions, therefore, insist on reality as you navigate your way through software engineering
business need
Every software project is precipitated by some _____—
the need to correct a defect in an existing application;
the need to the need to adapt a ‘legacy system’ to a changing business environment;
the need to extend the functions and features of an existing application, or
the need to create a new product, service, or system.