Evolution of software; Characteristics of software; Software applications; Components of software; Software myths; Software problems; Software reuse; Overview of risk management; Process visibility; Professional responsibility.
In this presentation, we will discuss about software development techniques, where we will cover life cycle model, life cycle of a system, system requirement analysis and various software development life cycle models.
To know more about Welingkar School’s Distance Learning Program and courses offered, visit:
http://www.welingkaronline.org/distance-learning/online-mba.html
During the Spring semester, I teach a 3 credit survey course in software development, at UW-Madison (IS 371), which is the first in the series of courses in the Information Systems major track. As part of this course, I devote an entire lecture to discussing different types of software development (Agile, Waterfall, Extreme, Spiral, etc.) I hope it helps the students better understand the different types of software development styles, as well as the benefits and drawbacks of each. In my opinion, they need to learn early on that there is more than one way to go about a software development challenge, and they need to figure out which style works best for them.
SDLC is the acronym of Software Development Life Cycle. It is also called as Software development process. The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process.
In this presentation, we will discuss about software development techniques, where we will cover life cycle model, life cycle of a system, system requirement analysis and various software development life cycle models.
To know more about Welingkar School’s Distance Learning Program and courses offered, visit:
http://www.welingkaronline.org/distance-learning/online-mba.html
During the Spring semester, I teach a 3 credit survey course in software development, at UW-Madison (IS 371), which is the first in the series of courses in the Information Systems major track. As part of this course, I devote an entire lecture to discussing different types of software development (Agile, Waterfall, Extreme, Spiral, etc.) I hope it helps the students better understand the different types of software development styles, as well as the benefits and drawbacks of each. In my opinion, they need to learn early on that there is more than one way to go about a software development challenge, and they need to figure out which style works best for them.
SDLC is the acronym of Software Development Life Cycle. It is also called as Software development process. The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process.
This is about software engineering.Software engineers apply engineering principles and knowledge of programming languages to build software solutions for end users. Software engineers design and develop computer games, business applications, operating systems, network control systems, and middleware—to name just a few of the many career paths available.
The software development life cycle (SDLC) is a framework defining tasks performed at each step in the software development process. SDLC is a structure followed by a development team within the software organization. It consists of a detailed plan describing how to develop, maintain and replace specific software.
Synthetic Fiber Construction in lab .pptxPavel ( NSTU)
Synthetic fiber production is a fascinating and complex field that blends chemistry, engineering, and environmental science. By understanding these aspects, students can gain a comprehensive view of synthetic fiber production, its impact on society and the environment, and the potential for future innovations. Synthetic fibers play a crucial role in modern society, impacting various aspects of daily life, industry, and the environment. ynthetic fibers are integral to modern life, offering a range of benefits from cost-effectiveness and versatility to innovative applications and performance characteristics. While they pose environmental challenges, ongoing research and development aim to create more sustainable and eco-friendly alternatives. Understanding the importance of synthetic fibers helps in appreciating their role in the economy, industry, and daily life, while also emphasizing the need for sustainable practices and innovation.
We all have good and bad thoughts from time to time and situation to situation. We are bombarded daily with spiraling thoughts(both negative and positive) creating all-consuming feel , making us difficult to manage with associated suffering. Good thoughts are like our Mob Signal (Positive thought) amidst noise(negative thought) in the atmosphere. Negative thoughts like noise outweigh positive thoughts. These thoughts often create unwanted confusion, trouble, stress and frustration in our mind as well as chaos in our physical world. Negative thoughts are also known as “distorted thinking”.
How to Make a Field invisible in Odoo 17Celine George
It is possible to hide or invisible some fields in odoo. Commonly using “invisible” attribute in the field definition to invisible the fields. This slide will show how to make a field invisible in odoo 17.
2024.06.01 Introducing a competency framework for languag learning materials ...Sandy Millin
http://sandymillin.wordpress.com/iateflwebinar2024
Published classroom materials form the basis of syllabuses, drive teacher professional development, and have a potentially huge influence on learners, teachers and education systems. All teachers also create their own materials, whether a few sentences on a blackboard, a highly-structured fully-realised online course, or anything in between. Despite this, the knowledge and skills needed to create effective language learning materials are rarely part of teacher training, and are mostly learnt by trial and error.
Knowledge and skills frameworks, generally called competency frameworks, for ELT teachers, trainers and managers have existed for a few years now. However, until I created one for my MA dissertation, there wasn’t one drawing together what we need to know and do to be able to effectively produce language learning materials.
This webinar will introduce you to my framework, highlighting the key competencies I identified from my research. It will also show how anybody involved in language teaching (any language, not just English!), teacher training, managing schools or developing language learning materials can benefit from using the framework.
The Indian economy is classified into different sectors to simplify the analysis and understanding of economic activities. For Class 10, it's essential to grasp the sectors of the Indian economy, understand their characteristics, and recognize their importance. This guide will provide detailed notes on the Sectors of the Indian Economy Class 10, using specific long-tail keywords to enhance comprehension.
For more information, visit-www.vavaclasses.com
Instructions for Submissions thorugh G- Classroom.pptxJheel Barad
This presentation provides a briefing on how to upload submissions and documents in Google Classroom. It was prepared as part of an orientation for new Sainik School in-service teacher trainees. As a training officer, my goal is to ensure that you are comfortable and proficient with this essential tool for managing assignments and fostering student engagement.
Students, digital devices and success - Andreas Schleicher - 27 May 2024..pptxEduSkills OECD
Andreas Schleicher presents at the OECD webinar ‘Digital devices in schools: detrimental distraction or secret to success?’ on 27 May 2024. The presentation was based on findings from PISA 2022 results and the webinar helped launch the PISA in Focus ‘Managing screen time: How to protect and equip students against distraction’ https://www.oecd-ilibrary.org/education/managing-screen-time_7c225af4-en and the OECD Education Policy Perspective ‘Students, digital devices and success’ can be found here - https://oe.cd/il/5yV
2. FAQ about software engineering
2
Question Answer
What is software? Computer programs, data structures and associated
documentation. Software products may be developed for
a particular customer or may be developed for a general
market.
What are the attributes of good software? Good software should deliver the required functionality
and performance to the user and should be
maintainable, dependable and usable.
What is software engineering? Software engineering is an engineering discipline that is
concerned with all aspects of software production.
What is the difference between software
engineering and computer science?
Computer science focuses on theory and fundamentals;
software engineering is concerned with the practicalities
of developing and delivering useful software.
What is the difference between software
engineering and system engineering?
System engineering is concerned with all aspects of
computer-based systems development including
hardware, software and process engineering. Software
engineering is part of this more general process.
3. Essential attributes of good
software
3
Product characteristic Description
Maintainability Software should be written in such a way so that it can evolve to meet the
changing needs of customers. This is a critical attribute because software
change is an inevitable requirement of a changing business environment.
Dependability and security Software dependability includes a range of characteristics including
reliability, security and safety. Dependable software should not cause
physical or economic damage in the event of system failure. Malicious
users should not be able to access or damage the system.
Efficiency Software should not make wasteful use of system resources such as
memory and processor cycles. Efficiency therefore includes
responsiveness, processing time, memory utilisation, etc.
Acceptability Software must be acceptable to the type of users for which it is designed.
This means that it must be understandable, usable and compatible with
other systems that they use.
4. Types of Software Engineering Model:
1. Waterfall Model.
2. Prototyping Model.
3. Spiral Model.
4. SDLC (Software Development Life Cycle).
a. V- shaped SDLC Model.
b. RAD (Rapid Application Model)
c. Incremental SDLC Model.
5. Agile Model.
6. Concurrent Development Model.
7. Specialized Process Model.
5. What is SDLC?
A Software Development Life
Cycle is essentially a series of steps, or
phases, that provide a model for the
development and lifecycle management of
an application or piece of software.
6. Different Phases of SDLC
1. Initiate Phase
2. Define Phase
3. Design Phase
4. Build Phase
5. Test Phase
6. Documentation Phase
7. Initiate Phase : Initiating the
project
Criteria involved in Initiate phase:
Input : Problem, strategic value added
reasoning.
Output: green signal from the Project Manager,
charter, Document, Scope and plan
document.
Who Involved in this Phase?
Business Analyst, Senior Level IT folks.
8. Define Phase: Defining what the
Product is? (Application,
Website…)
Input: Charter Document or Scope plan
Document.
Output: requirement document(Business
Analyst), Project Plan (Project Manager),
Test Plan(Quality Analyst Lead).
Who is Involve?
Business Analyst, Project Manager,
Quality Analyst, Developer, SME’s(Subject
Matter Experts).
9. Design Phase: How to Design the
Product?
Input: Requirement Document, Project Plan
worked by Quality Analyst.
Output: Functional Design Document by Business
Analyst
Technical Design Document by Developers
Project Plan by Project Manager
Updated Quality Analyst plan by Quality Test
Analyst team.
Who is involved?
Developer, Project Manager, Business
Analyst, Quality Analyst folks.
10. Build Phase: Building the
Product?
Coding of the Software
Input: Functional Design Document , Technical
design Document.
Output: Product, Unit Testing results.
“Test Case” : Describe step by step instruction
about to test a particular feature of the product.
With the help of design phase the
developers come up with algorithm.
Who involved?
Programmers and Quality Analyst.
11. Test Phase: Testing of the product
happens (Operation Feature
Testing).
Input : Test case.
Output: Test Results.
Who Test?
Quality Analyst.
UAT : User Acceptance Testing (High
Level Testing).
12. The Waterfall Model
12
It is the oldest paradigm for SE. When requirements are
well defined and reasonably stable, it leads to a linear
fashion.
(problems: 1. rarely linear, iteration needed. 2. hard to state all
requirements explicitly. Blocking state. 3. code will not be released until
very late.)
The classic life cycle suggests a systematic, sequential
approach to software development.
13. The waterfall model is a
sequential design process, often used
[citation needed] in software
development processes, in which
progress is seen as flowing steadily
downwards through the phases of
Conception, Initiation, Analysis,
Design, Construction, Testing,
Production/Implementation, and
Maintenance.
15. Advantages and Disadvantages
Advantage: Easy to explain to the user·
Structures approach.· Stages and activities are
well defined· Helps to plan and schedule the
project· Verification at each stage ensures early
detection of errors / misunderstanding and Each
phase has specific deliverables.
Disadvantage: Assumes that the requirements of
a system can be frozen· Very difficult to go back to
any stage after it finished.· Little flexibility and
adjusting scope is difficult and expensive.· Costly
and required more time, in addition to detailed
plan
16. Evolutionary Models: Prototyping
When to use: Customer defines a set of general objectives but does
not identify detailed requirements for functions and features. Or
Developer may be unsure of the efficiency of an algorithm, the form
that human computer interaction should take.
What step: Begins with communication by meeting with stakeholders
to define the objective, identify whatever requirements are known,
outline areas where further definition is mandatory. A quick plan for
prototyping and modeling (quick design) occur. Quick design focuses
on a representation of those aspects the software that will be visible
to end users. ( interface and output). Design leads to the construction
of a prototype which will be deployed and evaluated. Stakeholder’s
comments will be used to refine requirements.
Both stakeholders and software engineers like the prototyping
paradigm. Users get a feel for the actual system, and developers get
to build something immediately. However, engineers may make
compromises in order to get a prototype working quickly. The less-
than-ideal choice may be adopted forever after you get used to it.
16
17. Advantages of Prototype model:
Users are actively involved in the development
Since in this methodology a working model of
the system is provided, the users get a better
understanding of the system being developed.
Errors can be detected much earlier.
Quicker user feedback is available leading to
better solutions.
Missing functionality can be identified easily
Confusing or difficult functions can be identified
Requirements validation, Quick implementation
of, incomplete, but functional, application.
18. Disadvantages of Prototype model:
Leads to implementing and then repairing
way of building systems.
Practically, this methodology may increase
the complexity of the system as scope of
the system may expand beyond original
plans.
Incomplete application may cause
application not to be used as the full
system was designed Incomplete or
inadequate problem analysis.
19. When to use Prototype model:
Prototype model should be used when the
desired system needs to have a lot of interaction
with the end users.
Typically, online systems, web interfaces have a
very high amount of interaction with end users,
are best suited for Prototype model. It might
take a while for a system to be built that allows
ease of use and needs minimal training for the
end user.
Prototyping ensures that the end users
constantly work with the system and provide a
feedback which is incorporated in the prototype
to result in a useable system. They are excellent
for designing good human computer interface
systems.
21. Evolutionary Models: The Spiral
It couples the iterative nature of prototyping with the controlled and systematic
aspects of the waterfall model and is a risk-driven process model generator that is
used to guide multi-stakeholder concurrent engineering of software intensive
systems.
Two main distinguishing features: one is cyclic approach for incrementally growing
a system’s degree of definition and implementation while decreasing its degree of
risk. The other is a set of anchor point milestones for ensuring stakeholder
commitment to feasible and mutually satisfactory system solutions.
The first circuit in the clockwise direction might result in the product specification;
subsequent passes around the spiral might be used to develop a prototype and
then progressively more sophisticated versions of the software. Each pass results
in adjustments to the project plan. Cost and schedule are adjusted based on
feedback. Also, the number of iterations will be adjusted by project manager.
Good to develop large-scale system as software evolves as the process progresses
and risk should be understood and properly reacted to. Prototyping is used to
reduce risk.
However, it may be difficult to convince customers that it is controllable as it
demands considerable risk assessment expertise.
21
22. Evolutionary Models: The Spiral
Objective setting Specific objective for that phase of the project are defined.
Constraints on the process & the product are defined & a detailed management plan
is drawn up.[project risks are identified. Alternative strategies, depending on these
risks, may be planned].
Risk Assessment & reduction for each of the identified project risk, a detailed
analysis is carried out. Steps are taken to reduce the risk.
Development & Validation after risk evaluation, a development model for the
system is chosen.
Planning the project is reviewed & a decision made whether to continue with the
further loop of the spiral. If the decided to continue, plans are drawn up for the
next phase of the project.
22
23. Advantages of Spiral model:
High amount of risk analysis hence,
avoidance of Risk is enhanced.
Good for large and mission-critical
projects.
Strong approval and documentation
control.
Additional Functionality can be added at a
later date.
Software is produced early in the software
life cycle.
24. When to use Spiral model:
When costs and risk evaluation is important
For medium to high-risk projects
Long-term project commitment unwise
because of potential changes to economic
priorities
Users are unsure of their needs
Requirements are complex
New product line
Significant changes are expected (research
and exploration)
25. Disadvantages of Spiral model:
Can be a costly model to use.
Risk analysis requires highly specific
expertise.
Project’s success is highly dependent on
the risk analysis phase.
Doesn’t work well for smaller projects.
27. Agile Methodology
• AGILE methodology is a practice that
promotes continuous iteration of development and
testing throughout the software development lifecycle
of the project.
• Both development and testing activities are concurrent
unlike the Waterfall model.
28. Agile Methodology
The agile software development emphasizes on four core values.
Individual and team interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan
29. Agile Methodology Principles
Principle Description
Customer involvement Customers should be closely involved throughout the
development process. Their role is provide and prioritize new
system requirements and to evaluate the iterations of the
system.
Incremental delivery The software is developed in increments with the customer
specifying the requirements to be included in each increment.
People not process The skills of the development team should be recognized and
exploited. Team members should be left to develop their own
ways of working without prescriptive processes.
Embrace change Expect the system requirements to change and so design the
system to accommodate these changes.
Maintain simplicity Focus on simplicity in both the software being developed and
in the development process. Wherever possible, actively work
to eliminate complexity from the system.
30. Agile Development:
• In Agile development, Design and Implementation are
considered to be the central activities in the software process.
• Design and Implementation phase also incorporate other
activities such as requirements gathering and testing into it.
• In an agile approach, iteration occurs across activities.
Therefore, the requirements and the design are developed
together, rather than separately.
31. Agile Development:
• The allocation of requirements and the design planning and
development are executed in a series of increments.
• In contrast with the conventional model, where requirements
gathering needs to be completed in order to proceed to the design
and development phase, it gives Agile development an extra level
of flexibility.
• An agile process focuses more on code development rather than
documentation.
33. Agile Software Development Life Cycle
Concept: Scope Out and Prioritize Projects:
The team scopes out and prioritizes projects.
For each concept, you should define the business opportunity and
determine the time and work it’ll take to complete the project.
Inception: Diagram requirements for the initial sprint(iteration)
When the project is identified, stakeholders need to determine
requirements. High-level UML diagrams can help to demonstrate
the new feature.
34. Agile Software Development Life Cycle
Construction/iteration
UX designers and developers begin work on their first iteration of the
project, with the goal of having a working product to launch at the
end of the sprint.
The product will undergo various rounds
of revisions, so this first iteration might only include the bare
minimum functionality.
Release the iteration into production
Software iteration is finished with the following steps:
Test the system.
Address any defects.
Finalize system and user documentation.
Release the iteration into production.
35. Agile Software Development Life Cycle
Production and ongoing support for the software release
This phase involves ongoing support for the software release.
The production phase ends when support has ended or when the
release is planned for retirement.
Retirement
During the retirement phase, the system is released from
production, typically the system is replaced with a new release or
when the system becomes redundant, obsolete, or contrary to the
business model.
36. Agile Software Development Life Cycle
Sprint:
The Sprint is a timebox of one month or less during which the team
produces a potentially shippable product Increment.
Scrum:
Scrum is a process framework used to manage product
development and other knowledge work. Scrum is empirical in that
it provides a means for teams to establish a hypothesis of how they
think something works, try it out, reflect on the experience, and
make the appropriate adjustments.