Professional Documents
Culture Documents
This Software is used to monitor, control and analyze real world events as
they occur. Real time software deals with changing environment.
3. Embedded Software
4. Business Software
This is the largest application area. The software designed to process business
applications is called business software. Business software could be payroll, file
monitoring system employee management, and account management. It may also be
a data warehousing tool which helps us to take decisions based on available data.
Myth is defined as "widely held but false notation" by the oxford dictionary,
so as in other fields software arena also has some myths to demystify. Pressman
insists "Software myths- beliefs about software and the process used to build it- can
be traced to earliest days of computing.
Testing software or proving ‘software correct can remove all the errors.
Reusing software increases safety.
Software can work right the first time.
Software can be designed thoroughly enough to avoid most integrations
problems.
Software with more features is better software.
Addition of more software engineers will make up the delay.
Aim is to develop working programs.
It is true that source code files area easy to edit, but that is quite different than
saying that software is easy to change. This is deceptive precisely because source
code is so easy to alter. But making changes without introducing errors is extremely
difficult, particularly in organization with poor process maturity.
It is true that software does not fail in the traditional sense. There are no
limits to how many times a given piece of code can be exhausted before it
―wears out‖. In any event, the simple expression of this myth is that our general
ledgers are still not perfectly accurate, even though they have been computerized.
Back in the days of manual accounting systems, human error was a fact of
life. Now, we have software error as well.
3. Testing software or „proving‟ software correct can remove all the errors
Testing can only show the presence of errors. It cannot show the absence of
errors. Our aim is to design effective test cases in order to find maximum possible
errors. The more we test, the more we are confident about our design.
This myth is particularly troubling because of the false sense of security that
code re-use can create. Code reuse is a very powerful tool that can yield dramatic
improvement in development efficiency, but it‘s still requires analyses to determine
its suitability and testing tool determine if it works.
This is, of course, almost the opposite of the truth. The best, most enduring
programs are those which do one thing well.
The aim has been shifted from developing working programs to good quality,
maintainable programs. Maintaining software has become a very critical and crucial
area for software engineering community.
These myths, poor quality of software, increasing cost and delay in the
delivery of the software have been the driving forces behind the emergence of
software engineering as a discipline. Primarily, there are three types of software
myths, all the three are stated below:
Management Myth
Customer Myth
Practitioner/Developer Myth
Management Myth
So a software project manager must have worked well with the software
development process analyzing the minute deals associated with the field learning
the nitty-gritty and the tips and trick of the trade.
Customer Myths
In many cases, the customer believes myths about software because software
managers and practitioners do little to correct misinformation. Myths lead to false
expectations (by the customer) and, ultimately, dissatisfaction with the developer.
Commonly held myths by the clients are:
A general statement of objectives is sufficient to begin writing
programs - we can fill in the details later.
Requirement changes are easy to accommodate because software is flexible.
I know what my problem is; therefore I know how to solve it.
This primarily is seen evidently because the clients do not have a
firsthand experience in software development and they think that it's an easy
process.
Myths that are still believed by software practitioners have been fostered by
over 50 years of programming culture. During the early days of software,
programming was viewed as an art form. Old ways and attitudes die hard.
A malpractice seen is developers are that they think they know everything
and neglect the peculiarity of each problem.
If I miss something now, I can fix it later.
Once the program is written and running, my job is done.
Until a program is running, there's no way of assessing its quality.
The only deliverable for a software project is a working program
Different Models:
Waterfall Model
Used when requirements are well defined and reasonably stable and risk is low
Disadvantages:
Requires customer patience because a working version of the program doesn't occur
until the final phase.
Problems can be somewhat alleviated in the model through the addition of feedback
loops
The first increment is often a core product with many supplementary features.
Users use it and evaluate it with more modifications to better meet the needs.
Increments can be plan to manage Technical Risks. Eg. Word Processing Software
Usually a set of core product or system requirements is well understood, but the details
and extension have yet to be defined.
You need a process model that has been explicitly designed to accommodate a product
that evolved over time.
It is iterative that enables you to develop increasingly more complete version of the
software.
Prototyping Model
When it is used:
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.
Steps:
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.
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 send to it.
Fig. Prototyping Model
Disadvantages:
The customer sees a "working version" of the software, wants to stop all development
and then buy the prototype after a "few fixes" are made.
Developers often make implementation compromises to get the software running quickly
(e.g., language choice, user interface, operating system choice, inefficient algorithms)
Spiral Model
It couples the iterative nature of prototyping with the controlled and systematic aspects
of the waterfall model.
The other is a set of anchor point milestones (Combination of work products and
conditions) for Spiral Model
Starts at the core of spiral and continues for multiple iterations until concept
development is complete.
If the concept is developed into actual product, the process proceeds outward on the
spiral New Product Development Project starts.
Later the circuit around the spiral might be used to represent Product Enhancement
Project.
Advantages:
Good to develop large-scale system as software evolves as the process progresses and
risk should be understood and properly reacted to.
Disadvantages:
The RAD process model enables a development team to create a “fully functional
system” within very short time periods.
Writing unit tests before programming and keeping all of the tests running at all times.
The unit tests are automated and eliminate defects early, thus reducing the costs.
Starting with a simple design just enough to code the features at hand and redesigning
when required.
Programming in pairs (called pair programming), with two programmers at one screen,
taking turns to use the keyboard. While one of them is at the keyboard, the other
constantly reviews and provides inputs.
Integrating and testing the whole system several times a day.
Putting a minimal working system into the production quickly and upgrading it
whenever required.
Keeping the customer involved all the time and obtaining constant feedback. Iterating
facilitates the accommodating changes as the software evolves with the changing
requirements.
Advantages:
Scrum Programming:
Scrum is an agile way to manage a project, usually software development. Agile
software development with Scrum is often perceived as a methodology; but rather than
viewing Scrum as methodology, think of it as a framework for managing a process.
Scrum Overview - Introduction to Scrum Terms
An introduction to Scrum would not be complete without knowing the Scrum terms
you'll be using. This section in the Scrum overview will discuss common concepts in Scrum.
Scrum team: A typical scrum team has between five and nine people, but Scrum projects can
easily scale into the hundreds. However, Scrum can easily be used by one-person teams and
often is. This team does not include any of the traditional software engineering roles such as
programmer, designer, tester or architect. Everyone on the project works together to complete
the set of work they have collectively committed to complete within a sprint. Scrum teams
develop a deep form of camaraderie and a feeling that “we’re all in this together.”
Product owner: The product owner is the project’s key stakeholder and represents users,
customers and others in the process. The product owner is often someone from product
management or marketing, a key stakeholder or a key user.
Scrum Master: The Scrum Master is responsible for making sure the team is as productive
as possible. The Scrum Master does this by helping the team use the Scrum process, by
removing impediments to progress, by protecting the team from outside, and so on.
Product backlog: The product backlog is a prioritized features list containing every desired
feature or change to the product. Note: The term “backlog” can get confusing because it’s
used for two different things. To clarify, the product backlog is a list of desired features for
the product. The sprint backlog is a list of tasks to be completed in a sprint.
Sprint planning meeting: At the start of each sprint, a sprint planning meeting is held,
during which the product owner presents the top items on the product backlog to the team.
The Scrum team selects the work they can complete during the coming sprint. That work is
then moved from the product backlog to a sprint backlog, which is the list of tasks needed to
complete the product backlog items the team has committed to complete in the sprint.
Daily Scrum: Each day during the sprint, a brief meeting called the daily scrum is
conducted. This meeting helps set the context for each day’s work and helps the team stay on
track. All team members are required to attend the daily scrum.
Sprint review meeting: At the end of each sprint, the team demonstrates the completed
functionality at a sprint review meeting, during which, the team shows what they
accomplished during the sprint. Typically, this takes the form of a demonstration of the new
features, but in an informal way; for example, PowerPoint slides are not allowed. The
meeting must not become a task in itself nor a distraction from the process.
Sprint retrospective: Also at the end of each sprint, the team conducts a sprint retrospective,
which is a meeting during which the team (including its Scrum Master and product owner)
reflect on how well Scrum is working for them and what changes they may wish to make for
it to work even better.
Pig
Roles
Actual Team Members: These would be the developers, artists or product managers that
comprise the core of the team. These are the people who are actually doing the daily work to
bring the project to fruition. These members are fully committed to the project.
Scrum Master: The scrum master might be one of the team members — or might not be. It
is important to call this person out separately here though because the Scrum master has the
primary role of ensuring that the scrum moves forward without problems and is effective for the
team.
Project Owner: This may be a Product Manager who is also comprised of the team or it may
not. Again it is important to call this persons role out here as this person represents the voice of
the end customer. This person needs to ensure that the product achieves it’s product goals and
provides the necessary end product to the customers.
Chicken Roles
Managers: At first glance you might think that managers are pigs — naturally. However in
the scrum context managers are generally more concerned about the people involved in a
project and their respective health. They are not as focused on the product and it’s particular
customer oriented goals. For this reason they are considered a chicken in the scrum context.
Stakeholders: Stakeholders are individuals who will benefit or have a vested interest in the
project, however do not necessarily have authority to dictate direction or to be held accountable
for the product. They can be consulted for opinions and insight however the product owner
needs to maintain final rights for the decision making process.
over theThe
direction
reason of
thatthe scrum and
Chickens leadnot
should it be
away from
active the goals isofthat
participants the they
entire
tooteam.
easilyItwill
is the
scrum
masters job to ensure that the scrum stays on target and covers the topics that need to be
at hand.
covered. if someone goes off topic (chicken or pig) it is the scrum masters job to bring the
group back to the topic
Question Bank