Notes-SE-Module-4 & 5
Notes-SE-Module-4 & 5
By
Time
Cost
Quality
During the development process there can be many factors both internal andexternal
which can impact heavily on these triple constraints.
Contract management:
Software project is not just concernedonly with writing the software code, it
usually consists of 3 successive processes that bring a new system into market.
feasibility Study
Project Planning
Project Execution
Above three phases are focused in detail with more technical issues along with
effort needed by individuals as long as the overall project is within budget and on
time.
Feasibility study focuses on writing project proposal with special skills which
always gained by experience, by studying the market completely in connection with
the product to be taken up for development.
The software organization team depends on having enough project proposals
accepted and contracts awarded.
There are no set guidelines for writing a project and it depends mainly on the project
manager’s skill, market demand and customer satisfaction.
Project planning is done soon after the positive feedback from feasibility report, to
identify the activities, milestones and deliverables produced in a project.
It must include a clear and a well-defined idea of methods to guide the development
stages for the achievement of project goals.
It is like an outline or road map for the whole process which is to be taken up in an
appropriate manner.
Planning and design should not be confused, because at the most detailed level,
planning decisions are influenced by design decisions.
Which also includes wring project code and executing the same with various test
cases by satisfying customer requirements.
Stake holders are the people who have interest in the project. The primary
stakeholders in a corporation include its investors, employees, customers, and
suppliers, publics.
Objectives focuses on desired outcomes of the project rather than the task included
in it.There may be several stakeholders pertaining to the project but who sets
objectives is important. Like Customer/end user, programmer, team leader,
manager????
Usually, Objectives are often set by project steering committee or project
management board, with overall responsibilities of setting, monitoring and
modifying the objectives.
Project manager controls and coordinates project on day-to-day basis and reporting
the complete process to the project management board.
Sub objectives and goals: Sub objectives are the defined factors with proper
assumptions that how the main objective is achieved.
Few sub objectives that can be considered for achieving main objective are:
Business case :
Business case is a justification report prepared between the organization and
customer, which should be established at the time of feasibility study. Business case
document typically contains:
Project objectives
Business objectives
Project objectives are the targets that project team must achieve, these can be
summarized as:
Agreed functionalities
Required quality
On time
With in budget
In reality a project could meet all the objectives (Project objectives) but could fail to
meet business objectives after delivering to customer. Meaning that meeting project
objectives will not alone measure success of the project.
Business objectives are the targets which arises after the product is delivered,
generally product must satisfy following:
Planning
Organizing
Satisfying
Directing
Monitoring
Controlling
Innovating
Representing
Monitoring: Initial project plans are revised periodically as the project progress.
Once the project execution starts, monitoring and control activities are taken up to
ensure that the project execution proceeds as per the plan, and activities are closed
successfully.
Controlling is the process of gathering / analysing data on the progress of the
project schedule and the cost incurred, and ensuring that it is on track.
This process requires the project manager to collect and understand information
about the project, team, and circumstances to make informed decisions.
Over the last two decades the basic approach taken by the software industry to
develop software has undergone radical change. Initially developmentswere based
on some existing product or reusing certain pre-built libraries.
Recent development focuses on maximization of code reuse and minimizing project
duration. Other goal includes client feedback, customer participation, change
requests, demanding further reduction in time and cost.
Some of the important differences between traditional and modern project
management practices are:
Planning Incremental Delivery
Change Management
Quality Management
Planning Incremental Delivery: Traditional projects were much simpler and
therefore more predictable than present day modern projects. Hence projects were
planned with sufficient detail, much before the actual project execution starts.
Modern projects are much complex and therefore not predictable. Though projects
were planned with sufficient detailsmuch before the project execution, requires
incremental delivery with key strategies.
Evaluation of Projects :
Technical assessment
Cost based analysis
Cash flow fore casting
Cash flow forecasting: It is an important evaluation process where overall cost and
benefits of a project are accessed properly.
We need to spend money on staff, from company during development process
without waiting until the completion of project.
Actual cash flow forecasting in complex project is difficult, many a times it changes
over the period of time.
Benefit will be calculated by with respect to money spent and profit gained.
Software quality is the capability of a product to satisfy stated and implied needs
when used under specified conditions.
Another definition states that software quality is the degree to which those
established requirements accurately represent stakeholder needs, wants, and
expectations.
software quality helps reduce problems and errors in the final product under
operation by the end user.
Quality should be monitored at all stages of project planning and execution. But it
will be of particular interest at the following points.
Step 1: Identify project scope and objectives, because some objectives could relate
to the qualities of the application to be delivered.
Step 4: Identify the products and activities of the project, at this point entry-exit and
process requirements are identified for each activity.
The complete process focusing with quality will start at the Selection of project -
>Identifying scope and objectives ->Identifying infrastructure ->Analyse project
characteristics ->Identify project activities ->Estimate effort for each activity -
>Identity activity risks ->Allocate resources ->Review publicize plan ->Execute
plan
Quality software refers to one which is reasonably bug or defect free, is delivered in
time and within the specified budget, meets the requirements / expectations, and is
maintainable.
For example, a product that will have everything that the users need but has an
associate degree virtually not comprehensive (confusing) and not maintainable code.
Correctness
Efficiency
Usability
Maintenance
Portability
Reliability
Reusability
Flexibility
Software quality is not just about just testing. It is about providing quality assurance
to users. Testing helps us to improve the software quality, and increase the
performance and the speed at which you deliver your projects.
How ever similar to other process there are various techniques that helps to enhance
software quality. Three main themes that are considered for this are:
Increasing visibility
Procedural structure
Checking intermediate
Procedural structure: In this technique programmer were left to get on with writing
programs at their best.
Secondly because of the growth in methodologies suitable methodology is carefully
selected to execute the required work.
How ever recently, focus has been shifted from relying solely on above discussed
techniques to other quick techniques.
Early testing
Component testing
Walk through inspections
Peer reviews
Software quality models provide the basis for specifying quality requirement and
evaluating accordingly. Standard models proposed are:
Boehm’s Software Quality Model: Boehm introduced his software quality model,
which defines software quality through a hierarchical structure of attributes and
metrics. This model is similar to the McCall Quality Model but encompasses a
wider range of characteristics, including hardware performance-related ones.
Primary Uses of Boehm’s Model The highest level of Boehm’s model has the
following three primary uses, as stated as below:
McCall’s Quality Model: McCall’s Quality Model aims to cover the gap between
users and developers by highlighting several kinds of software quality factors that
reflect both the views of users and developers’ interests.
The model distinguishes between two levels of quality attributes:
• Quality Factors
• Quality Criteria
Quality Factors: The higher-level attributes that can be accessed directly are called
quality factors. These attributes are external. The attributes at this level are given
more importance by the users and managers.
Quality Criteria: The lower or second-level quality attributes that can be accessed
either subjectively or objectively are called Quality Criteria. These attributes are
internal. Each quality factor has many second-level quality attributes.
Garvin's Software Quality Model: David Garvin suggests that quality process to
be thought about by taking a third-dimensional read point that begins with an
assessment of correspondence and terminates with a transcendental (aesthetic) view.
2. Feature Quality: Does the software system offer options that surprise and
delight first-time finish users.
3. Reliability: Will the software system deliver all options and capability while
not failure? Is it obtainable once it’s needed? Will it deliver practicality that’s
error-free.
4. Conformance: Will the software system adjust to native and external
software standards that are relevant to the application? Will it conform to the
factual style and writing conventions? As an example, will the computer
program conform to accepted style rules for menu choice or knowledge input.
5. Durability: Will the software system be maintained (changed) or corrected
(debugged) while not the accidental generation of unintentional facet effects?
Can changes cause the error rate or responsibility to degrade with time
6. Serviceability: Will the software system be maintained (changed) or
corrected (debugged) in a tolerably short time period? Will support employees
acquire all data they have to create changes or correct defects
7. Aesthetics: An aesthetic entity includes a sure class, a novel flow, and a clear
“presence” that are arduous to quantify however are evident still. The
aesthetic software system has these characteristics.
8. Perception: In some things, you’ve got a collection of prejudices which will
influence your perception of quality. If a seller has a wonderful name, you
will understand quality, even once it doesn’t very exist.
Customer focus
Leadership
Engagement of people
Process approach
Improvement
Evidence-based decision making
Relationship management.