01SP072023012390001
01SP072023012390001
2. Plan a solution:
Have you seen similar problems before?
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?(creating proper plan to solve the prob)
3. 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?
1)Management myths
2)Customer myths
3)Practitioner myths
1. Management myths
• Myth 1
Myth: We already have a book that’s full of standards and procedures for
building software. Won’t that provide my people with everything they need
to know?
Reality:
- The book of standards may very well exist, but is it used?
- Are software practitioners aware of its existence?
- Does it reflect modern software engineering practice? (modern tool
,techniques)
- Is it complete? Is it adaptable? In many cases, the answer to all of these
questions is “no.”
Myth 2:
Myth: we have the newest computers and tools that is sufficient to
built the s/w.
Reality:
- It takes much more time for understanding than the latest model
mainframe.
- CASE tools are more important than hardware for achieving good
quality and productivity.
- Majority of s/w developers still do not use tools effectively.
Myth 3: We can add more programmers and catch up the schedule
Reality:
-Software development is not a mechanistic process like manufacturing
- As new people are added, people who were working must spend time
educating the newcomers thereby reduce the amount of time spent
on productive development effort
- People can be added but only in a planned and well-coordinated
manner.
2. Customer myths
Myth 1: A general statement of objectives is sufficient to begin writing
programs—we can fill in the details later
Reality: Someone once said that “the sooner you begin ‘writing code,’
the longer it’ll take you to get done.”
Industry data indicate that between 60 and 80% of all effort expended
on software will be expended after it is delivered to the customer for
the first time.(unit testing)
Myth 2: I can not achieve quality until program is running.
1) Communication
2) Planning
3) Modeling
-Analysis of requirements
-Design
4) Construction
-Code generation
-Testing
5) Deployment
• Communication: By communication, customer requirement gathering is done. Communication
with consumers and stakeholders to determine the system’s objectives and the software’s
requirements.
• Planning: Establish engineering work plan, describes technical risk, lists resources requirements,
work produced and defines work schedule.
• Modeling: Architectural models and design to better understand the problem and to work
towards the best solution. The software model is prepared by:
-Analysis of requirements
-Design
• Construction: Creating code, testing the system, fixing bugs, and confirming that all criteria are
met. The software design is mapped into a code by:
-Code generation
-Testing
• Deployment: In this activity, a complete or non-complete product or software is represented to
the customers to evaluate and give feedback. On the basis of their feedback, we modify the
product for the supply of better products.
Umbrella Activities
-Complement the five process framework activities and help team manage
and control progress,quality,change,and risk.
- activities are independent of any one framework activity and occur through-
out the process.
-The process framework encompasses a set of umbrella activities that are
applicable across the entire software process.
-Umbrella activities are applied throughout a software project.
It help a software team manage and control progress,quality,change,and
risk.
-Software project tracking and control: Compare the progress of the project with the
plan and take steps to maintain a palnned schedule
-Risk management: Analyze any potential risks that may have an impact on the software
products quality and outcome.
-Software quality assurance: These are activities required to maintain software quality.
-Technical reviews: Assessment of error and correction done at each stage of activity.
-Measurement: Defines and collects process, project, and product measures.
-Software configuration management: Managing of configuration process when any
change in the software occurs.
-Reusability management: Reusable work items should be backed up, and reusable
software components should be achieved.
-Work product preparation and production: This activity to create Models,
Documents, Logs, Forms and Lists are carried out
Framework Activities
• Consider Communication Activity for small project:
- Making a phone call with stakeholder
- Discuss requirement and note them own
- Organize requirements
- Mail Stakeholder for review and approval
• Consider Communication Activity for large project:
- Arrange live meeting
- Complete feasibility study
- Requirement analysis
- Specification documents
IDENTIFYING A TASK SETS
4) Evaluation:
- take a feedback from customer
- if iteration want any changes,goes to next planning or next spiral
iteration
When to use Spiral model?
• When the project is large and high budget.
• When requirement are unclear and complex.
• When changes may require at any time
• When the software needs continuous risk evaluation.
Advantages of Spiral Model
• High amount of risk analysis.
• Risky part can be developed earlier which help in better rik
management.
• Useful for large and mission-critical project.
• Allows extensive use of prototype(solve all error in prototype).
• There is always a space for customer feedback.
• Changing the requirement can be accommodated.
• Development is fast
Disadvantages of Spiral Model
• Risk analysis needed highly particular expertise.
• Can be a costly model to use.
• Doesn’t work for smaller projects.
• Spiral process is complex sometimes because spiral may be infinitely.
• Large number of spiral stages required excessive documentation.
Prototyping Model
• Prototype is not a complete product it is just functional replica or toy
implementation of any idea, software or system.
• It is applied when customers do not know the exact project
requirements.
• It generates before actual development of software.
• It is an iterative ,trial and error method which take place between
developer and client,
Steps of Prototype Model
1.Requirement Gathering and Analyst
2.Quick Decision
3.Build a Prototype
4.Assessment or User Evaluation
5.Prototype Refinement
6.Engineer Product
Advantages of Prototyping Model
• Prototype model need not know the detailed input, output
,processes.
• Good where requirement are changing.
• Customer are actively involved in development.
• Prototype can be changed and even discarded.
• Errors can be detected much earlier as the system is made side by
side.
• Flexibility in design
• Helps team member to communicate effectively.
Disadvantages of Prototyping Model
• The client involvement is more and it is not always considered by the
developer.
• It is a slow process because it takes more time for development.
• Many changes can disturb the rhythm(flow) of the development
team.
• Documentation is poor as the requirements change frequently.
• It is a thrown away prototype when the users are confused with it.
• Costly with respect to time and money.
• Prototyping tools are expensive.
Example of Prototype VS Actual
Unified process model
• Inception Phase:
- You think about what kind of software you want to build and why. What are its main features
and goals?
- Communication and planning
- Identification of project scope
- Customer requirement identification
- Project plan, project goal, risk identification
• Elaboration Phase:
-Elaboration means describing something in more details
-here we go into more details of the 1st
-Now you start planning in more detail. You figure out how the software will work, what
technologies you'll use, and what the major components will be. It's like creating a detailed
blueprint for your house.
• Construction Phase:
- Here we develop and complete the projects based on the data we get from
previous stages.
- Coding of project is done here.
- All kind of testing are also done here
- This is where you actually start building. You take your plan and start writing
the actual code for the software.
• Transition Phase:
- Here finally project is transmit from development environment to production
- Here we also set the project on beta testing mode.
- Remove the bugs from project based on customer feedback.
• Production:
- This is final phase of the model
- Project is maintained here.
- Project is updated here accordingly.
Fig: Unified Process model
Concurrent Models
• It is type of evolutionary model.
• Concurrent development model is also known as concurrent
engineering.
• The term concurrent mean” done at the same time”.
• It is used in all software development process model.
• Transition from state to state for each of the software engineering
activities.
SDLC Activities: Communication, Design, Coding, Testing, Deployment