Software Engineering - Introduction To Software Engineering & Process Models
DEFINE : SOFTWARE
- A Software is a Set of Instructions that provide desired Features, Functions & Performance when Executed.
- Software is a Data Structure that enables the Programs to Adequately Manipulate the Information.
- Software is a Descriptive Information in both Hard Copy & Virtual Forms that describes the Operation & Use of the Program.
ENLIST : TYPES OF SOFTWARE
- System Software.
- Application Software.
- Engineering Software.
- Embedded Software.
- Product Line Software.
- Web Application.
- Artificial Intelligence Software.
EXPLAIN : TYPES OF SOFTWARE
- System Software : It is a Set of Programs used to Provide Service to Other Programs such as Compilers, Editors & File Management. In all the Situations, The System Software area Broadly upon the Interaction with the Computer Hardware. System Software is Designed to Provide a Platform to Other Software.
- Application Software : These are the Stand - Alone Programs which are specially Developed for Specific Business Needs. It consists of Programs that do Real Work for the Users. For example: The Word processors & Database Management Systems.
- Engineering Software : Engineering Software is also known as Scientific Software that is used for Scientific Purposes. Scientific Software is mainly Developed to better understand about the Real World Process.
- Embedded Software : Embedded Software Engineering is the Process of Controlling various Devices & Machines. Application of the Embedded Software are Car Washing Machines & Microwaves.
- Product Line Software : Product Software is Developed to Provide a Specific Capability for use by Different Customers / Users. It is mainly used for Collection of Similar Software Systems. These Software are used in Companies.
- Web Based Software : These Software are also known as "WebApps". It acts as an Interface between the User & Internet. Web - Based Software includes the Languages such as HTML, Java & GUI
- Artificial Intelligence : In these Applications, Non - Numerical Algorithms are generally used for the Purpose of Solving Complex Problems which cannot be handled by Computation or Straight - Forward Analysis. There are various Applications in this Category such as Robotics, Games, Expert Systems, Artificial Neural Networks and Pattern Match of Face & Voice.
DIAGRAM : LAYERED APPROACH OF SOFTWARE ENGINEERING
EXPLAIN : SOFTWARE ENGINEERING AS A LAYERED APPROACH
- Quality Process: Any Engineering Approach must rest on the Quality, The most important Aspect in Software Engineering is the Quality Focus.
- Process: Foundation for Software Engineering is the Process Layer. The "Process" is the glue that holds all the Technology Layers together & Enables the development of Computer Software.
- Methods: This Provides the "Technical Questions" for Building the Software. The "Methods" can contain a Broad Array of Tasks that include Communication Requirement Analysis, Design Modelling and Program Construction Testing & Support.
- Tools: The Software Engineering Tools Provide Automated / Semi - Automated support for the "Process" & "Methods". Tools are Integrated specifically so that one tool can Support the another.
DEFINE : SOFTWARE ENGINEERING
- Software Engineering is the Method of Applying Scientific & Technological Knowledge, Process & Rules to Design, Develop & Maintain the Software Product.
EXPLAIN : CHARACTERISTICS OF SOFTWARE ENGINEERING
- Functionality: Ability.
- Reliability: Reliable under given Conditions.
- Usability: Ease of the Software.
- Efficiency: Effective & Efficient manner of Software.
- Maintainability: Ease of Modifications to Improve Performance.
- Portability: Ease of Transferring the Software from one System to another.
- Dependability: Fulfilling the Customers' Requirements.
DIAGRAM : WATERFALL MODEL
EXPLAIN : WATERFALL MODEL
- Waterfall Model is the First Approach used in Software Development Process.
- It is also known as Classical Life Cycle Model / Linear Sequential Model.
- In the Waterfall Model, Any Phase of Development Process begins only if Previous Phase is Completed.
ENLIST : PHASES OF THE WATERFALL MODEL
- Requirement Analysis: Business Requirements are gathered.
- Design: Document Design of the System is created.
- Implementation: Actual Coding is been Constructed.
- Verification / Testing: Verifies the Tools & Document of Software.
- Maintenance: Modifications should be done if Fault occurs.
ADVANTAGES : WATERFALL MODEL
- It is a Simple-To-Understand & Easy-To-Use Application.
- Phases of Waterfall Model do not overlap each other.
- It is useful for the Small Projects in which requirements are not clear initially.
- Since, Development is Linear It is easy to Manage the Development Process.
DIS-ADVANTAGES : WATERFALL MODEL
- It is not useful for the Large Projects.
- Not Suitable for Projects in which the Requirements are not Clear Initially.
- System / Product is available only at the End of the Development Process.
- It is Very Difficult to Modify the System Requirements in the Middle
COMPARE : WATERFALL MODEL V/S INCREMENTAL MODEL
- Simplicity: Simple / Intermediate
- Risk: High / Less
- Flexibility To Change: Difficult / Easy
- User Involvement: Only Beginning / Intermediate
- Flexibility: Rigid / Less Flexible
- Maintenance: Least / Most
- Duration: Long / Very Long
DEFINE : PRINCIPLES / FEATURES OF AGILITY
- Customer Satisfaction by Early & Continuous Delivery of Valuable Software.
- Welcome the Changing Requirements, Even in Late Developments.
- Working Software is Delivered Frequently (Weeks rather than Months)
- Close & Daily Co - Operation is between Business People & Developers.
- Projects are Built around Motivational Individuals who should be Trusted.
- Face-To- Face Communication is the Best Form of Communication.
- Working Software is the Primary Measure of Progress.
- Sustainable Development (Able to Maintain a Constant Pace)
- Simplicity is Essential.
- Best Architecture, Requirements & Designs should be used.
EXPLAIN : AGILE SOFTWARE MODEL
- Agile is a Group of Software Development Framework that Encourages Rapid & Flexible Response to Change.
- Agile Software Development is an Approach to Software under which Requirement & Solution Evolve.
- Agile Software Development Models in Software Development break away from the Classic Waterfall Model & it's variations.
- Agile Process also Promises to React Flexibly to the Changing Requirements.
- It describes an Approach to the Software Development under which the System Requirements & Solutions can Evolve.
ADVANTAGES : AGILE SOFTWARE MODEL
- Faster & High - Quality Deliveries.
- Strong Team Interaction.
- Continuous Improvements Are Promised.
DIS-ADVANTAGES : AGILE SOFTWARE MODEL
- Planning can be Less Concrete.
- Team must be Knowledgeable.
- Time Commitment From Developers is Compulsion.
EXPLAIN : SCRUM
- Scrum is also an Agile Development Method which Concentrates particularly on "How to manage Tasks within a Team - Based Environment".
- It is also Includes an Iterative & Incremental Agile Software Development Framework for Managing Software Project & Application Development.
- The "Scrum Framework" Consists of Scrum Team of Total 3 - 9 Members.
ENLIST : SCRUM FRAMEWORK ACTIVITIES
- Backlog.
- Sprints.
- Modifications.
- Scrum Meetings.
- Demos.
DIAGRAM : SCRUM
- A Software is a Set of Instructions that provide desired Features, Functions & Performance when Executed.
- Software is a Data Structure that enables the Programs to Adequately Manipulate the Information.
- Software is a Descriptive Information in both Hard Copy & Virtual Forms that describes the Operation & Use of the Program.
ENLIST : TYPES OF SOFTWARE
- System Software.
- Application Software.
- Engineering Software.
- Embedded Software.
- Product Line Software.
- Web Application.
- Artificial Intelligence Software.
EXPLAIN : TYPES OF SOFTWARE
- System Software : It is a Set of Programs used to Provide Service to Other Programs such as Compilers, Editors & File Management. In all the Situations, The System Software area Broadly upon the Interaction with the Computer Hardware. System Software is Designed to Provide a Platform to Other Software.
- Application Software : These are the Stand - Alone Programs which are specially Developed for Specific Business Needs. It consists of Programs that do Real Work for the Users. For example: The Word processors & Database Management Systems.
- Engineering Software : Engineering Software is also known as Scientific Software that is used for Scientific Purposes. Scientific Software is mainly Developed to better understand about the Real World Process.
- Embedded Software : Embedded Software Engineering is the Process of Controlling various Devices & Machines. Application of the Embedded Software are Car Washing Machines & Microwaves.
- Product Line Software : Product Software is Developed to Provide a Specific Capability for use by Different Customers / Users. It is mainly used for Collection of Similar Software Systems. These Software are used in Companies.
- Web Based Software : These Software are also known as "WebApps". It acts as an Interface between the User & Internet. Web - Based Software includes the Languages such as HTML, Java & GUI
- Artificial Intelligence : In these Applications, Non - Numerical Algorithms are generally used for the Purpose of Solving Complex Problems which cannot be handled by Computation or Straight - Forward Analysis. There are various Applications in this Category such as Robotics, Games, Expert Systems, Artificial Neural Networks and Pattern Match of Face & Voice.
DIAGRAM : LAYERED APPROACH OF SOFTWARE ENGINEERING
EXPLAIN : SOFTWARE ENGINEERING AS A LAYERED APPROACH
- Quality Process: Any Engineering Approach must rest on the Quality, The most important Aspect in Software Engineering is the Quality Focus.
- Process: Foundation for Software Engineering is the Process Layer. The "Process" is the glue that holds all the Technology Layers together & Enables the development of Computer Software.
- Methods: This Provides the "Technical Questions" for Building the Software. The "Methods" can contain a Broad Array of Tasks that include Communication Requirement Analysis, Design Modelling and Program Construction Testing & Support.
- Tools: The Software Engineering Tools Provide Automated / Semi - Automated support for the "Process" & "Methods". Tools are Integrated specifically so that one tool can Support the another.
DEFINE : SOFTWARE ENGINEERING
- Software Engineering is the Method of Applying Scientific & Technological Knowledge, Process & Rules to Design, Develop & Maintain the Software Product.
EXPLAIN : CHARACTERISTICS OF SOFTWARE ENGINEERING
- Functionality: Ability.
- Reliability: Reliable under given Conditions.
- Usability: Ease of the Software.
- Efficiency: Effective & Efficient manner of Software.
- Maintainability: Ease of Modifications to Improve Performance.
- Portability: Ease of Transferring the Software from one System to another.
- Dependability: Fulfilling the Customers' Requirements.
DIAGRAM : WATERFALL MODEL
EXPLAIN : WATERFALL MODEL
- Waterfall Model is the First Approach used in Software Development Process.
- It is also known as Classical Life Cycle Model / Linear Sequential Model.
- In the Waterfall Model, Any Phase of Development Process begins only if Previous Phase is Completed.
ENLIST : PHASES OF THE WATERFALL MODEL
- Requirement Analysis: Business Requirements are gathered.
- Design: Document Design of the System is created.
- Implementation: Actual Coding is been Constructed.
- Verification / Testing: Verifies the Tools & Document of Software.
- Maintenance: Modifications should be done if Fault occurs.
ADVANTAGES : WATERFALL MODEL
- It is a Simple-To-Understand & Easy-To-Use Application.
- Phases of Waterfall Model do not overlap each other.
- It is useful for the Small Projects in which requirements are not clear initially.
- Since, Development is Linear It is easy to Manage the Development Process.
DIS-ADVANTAGES : WATERFALL MODEL
- It is not useful for the Large Projects.
- Not Suitable for Projects in which the Requirements are not Clear Initially.
- System / Product is available only at the End of the Development Process.
- It is Very Difficult to Modify the System Requirements in the Middle
COMPARE : WATERFALL MODEL V/S INCREMENTAL MODEL
- Simplicity: Simple / Intermediate
- Risk: High / Less
- Flexibility To Change: Difficult / Easy
- User Involvement: Only Beginning / Intermediate
- Flexibility: Rigid / Less Flexible
- Maintenance: Least / Most
- Duration: Long / Very Long
DEFINE : PRINCIPLES / FEATURES OF AGILITY
- Customer Satisfaction by Early & Continuous Delivery of Valuable Software.
- Welcome the Changing Requirements, Even in Late Developments.
- Working Software is Delivered Frequently (Weeks rather than Months)
- Close & Daily Co - Operation is between Business People & Developers.
- Projects are Built around Motivational Individuals who should be Trusted.
- Face-To- Face Communication is the Best Form of Communication.
- Working Software is the Primary Measure of Progress.
- Sustainable Development (Able to Maintain a Constant Pace)
- Simplicity is Essential.
- Best Architecture, Requirements & Designs should be used.
EXPLAIN : AGILE SOFTWARE MODEL
- Agile is a Group of Software Development Framework that Encourages Rapid & Flexible Response to Change.
- Agile Software Development is an Approach to Software under which Requirement & Solution Evolve.
- Agile Software Development Models in Software Development break away from the Classic Waterfall Model & it's variations.
- Agile Process also Promises to React Flexibly to the Changing Requirements.
- It describes an Approach to the Software Development under which the System Requirements & Solutions can Evolve.
ADVANTAGES : AGILE SOFTWARE MODEL
- Faster & High - Quality Deliveries.
- Strong Team Interaction.
- Continuous Improvements Are Promised.
DIS-ADVANTAGES : AGILE SOFTWARE MODEL
- Planning can be Less Concrete.
- Team must be Knowledgeable.
- Time Commitment From Developers is Compulsion.
EXPLAIN : SCRUM
- Scrum is also an Agile Development Method which Concentrates particularly on "How to manage Tasks within a Team - Based Environment".
- It is also Includes an Iterative & Incremental Agile Software Development Framework for Managing Software Project & Application Development.
- The "Scrum Framework" Consists of Scrum Team of Total 3 - 9 Members.
ENLIST : SCRUM FRAMEWORK ACTIVITIES
- Backlog.
- Sprints.
- Modifications.
- Scrum Meetings.
- Demos.
DIAGRAM : SCRUM