15 July, 2014

Software and software engineering



Software and software engineering



=> The Nature of Software
=> 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.





The Unique Nature of WebApps



> Network Intensiveness 
> 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.


The Software Process


ž  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.



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