Software
and software engineering
=> The
Nature of Software
=> Unique Nature of WebApps
=> Software Engineering
=> Software Engineering Practice and Principles
=> Unique Nature of WebApps
=> Software Engineering
=> Software Engineering Practice and Principles
The Nature of Software
Today, software takes on a dual role. It is
a product, and at the same time, the vehicle for delivering a product.
As a product it delivers the computing
potential embodied by computer hardware or more broadly, by a network of
computers that are accessible by local hardware.
As the vehicle used to deliver the product,
software acts as the basis for the control of the computer (operating systems),
the communication of information( networks), and the creation and control of
other programs( software tools and environments)
Software Characteristics
Software is developed or engineered, it is
not manufactured in the classical sense.
Software doesn’t “Wear Out”.
Although the industry is moving toward
component-based construction, most software continues to be custom built.
Software Application Domain
> System Software
> Application Software
> Engineering / Scientific Software
> Embedded Software
> Product-line Software
> Web Applications
> Artificial Intelligence Software
> Open-World Computing
> Net Sourcing
> Open Source
> Legacy Software: Developed decades ago. Many systems remain supportive to core business functions but, some may be of poor quality should be broken and does not need to be fixed.
> Application Software
> Engineering / Scientific Software
> Embedded Software
> Product-line Software
> Web Applications
> Artificial Intelligence Software
> Open-World Computing
> Net Sourcing
> Open Source
> Legacy Software: Developed decades ago. Many systems remain supportive to core business functions but, some may be of poor quality should be broken and does not need to be fixed.
The Unique Nature of WebApps
> Network Intensiveness
> Concurrency
> Unpredictable Load
> Performance
> Availability
> Data Driven
> Content Sensitive
> Continuous Evolution
> Immediacy
> Security
> Aesthetics (Beauty)
> Concurrency
> Unpredictable Load
> Performance
> Availability
> Data Driven
> Content Sensitive
> Continuous Evolution
> Immediacy
> Security
> Aesthetics (Beauty)
Software Engineering
Definition: The application of a systematic,
disciplined, quantified approach to the development, operation and maintenance
of software and the study of all these approaches.
Software engineering is a layered
technology.
A process is a collection of activities,
actions and tasks that are performed when some work product is to be created.
A Generic process framework for software
engineering encompasses five activities.
> Communication
> Planning
> Modeling
> Construction
> Deployment
> Umbrella Activities: Software Project Tracking and Control, Risk Management, Software Quality Assurance, Technical Reviews, Measurements, Software Configuration Management, Reusability Management, Work Product preparation and Production.
> Planning
> Modeling
> Construction
> Deployment
> Umbrella Activities: Software Project Tracking and Control, Risk Management, Software Quality Assurance, Technical Reviews, Measurements, Software Configuration Management, Reusability Management, Work Product preparation and Production.
Software Engineering Practice and Principles
> The
Essence of Practice:
> 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)
> General Principles:
> The reason it all exists: (To provide value to its users)
> KISS (Keep It Simple, Stupid!!!)
> Maintain the Vision\
> What you produce, Others will Consume
> Be Open to the Future.
> Plan Ahead for Reuse
> Think
> 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)
> General Principles:
> The reason it all exists: (To provide value to its users)
> KISS (Keep It Simple, Stupid!!!)
> Maintain the Vision\
> What you produce, Others will Consume
> Be Open to the Future.
> Plan Ahead for Reuse
> Think