Professional Documents
Culture Documents
It601 Se Material Till Class Test PDF
It601 Se Material Till Class Test PDF
analyze the requirements systematically and develop the model using standard tools and
methodologies
CLO3
apply key aspects of software engineering processes for the development of a complex
software system
CLO4
Term
0.3 0.4 0.3 0.75 0.25
Prof. Daiwat Paper
IT601 SE (*) 10
Vyas 0.75+0.25=1.0
0.3+0.4+0.3 =1.0 WT: 0.4
WT: 0.2
* SE: Software Engineering
Final Break-up for Course Evaluation: 0.4 of CE + 0.4 of SEE + 0.2 of total of LPW component = 1
Lesson Planning
• IT601 Lesson Planning Even Sem 2016-17
List of Practicals
• IT601 List of Practicals Even Sem 2016-17
Introduction
• What is Engineering?
• Now the very first thing you will require is requirement gathering then analysis,
feasibility study, planning etc because just manually thinking about this big
project is not going to help you in anyway.
• You have to plan, coordinate and test everything because this project will require
lots of man force with proper budgeting.
• And let’s say you can complete it without any problem then it should be tested
too because it can be dangerous if the bridge is not secure.
• Now same concept comes with making software in companies. You need proper
planning, coordination between people, testing and maintenance too for
software development.
• All these things can be made possible with the help of software engineering.
Introduction
• What if Software Engineering approach not followed?
• For larger systems:
• Requirements collection can be incomplete or not deep enough.
• The lack of methodical, quantifiable methods drives to non-comparable
experience.
• The lack of systematic methods drive to weak or too complex architecture.
• Inconsistent user interface results evident too late to be changed.
• Code will become not easy to maintain.
• No systematic testing strategies drive to omnipresent and never-ending bugs.
• All these calamities can be avoided, for sure, being very careful and experienced.
In most of the cases this implies a strong discipline, following personal rules.
Introduction
• Software Development, Software Engineering, Software
Engineers etc…
• "We already have a book that is full of standards and procedures for
building software. Won't that provide my people with everything
they need to know?“
• "Once we write the program and get it to work, our job is done"
Tools
Methods
Processes
Quality Focus
Software Engineering: Layered Technology
• Any engineering approach (including software engineering) must
rest on an organizational commitment to quality.
• The key process areas form the basis for management control of
software projects.
• Communication
• Planning
• Establishes a plan for software engineering work; addresses
technical tasks, resources, work products, and work schedule
Generic Process Framework for SE
• Modeling (Analyze, Design)
• Encompasses the creation of models to better understand the
requirements and the design
• Deployment
• Involves delivery of software to the customer for evaluation and
feedback
Generic Process Framework for SE
• Umbrella Activities
• Real projects rarely follow the sequential flow that the model
proposes.
• Although the linear model can accommodate iteration, it does so
indirectly.
• As a result, changes can cause confusion as the project team
proceeds.
Process Models: THE LINEAR SEQUENTIAL MODEL:
• Problems with such an approach:
• But, what to do with the prototype when it has served the purpose we
just discussed?
Process Models: THE PROTOTYPING MODEL
• In most projects, the first system built is barely usable. It may be too
slow, too big, awkward in use or all three.
• There is no alternative but to start again, smarting but smarter, and
build a redesigned version in which these problems are solved . . .
• When a new system concept or new technology is used, one has to
build a system to throw away, for even the best planning is not so
omniscient as to get it right the first time.
• The management question, therefore, is not whether to build a pilot
system and throw it away. You will do that. The only question is
whether to plan in advance to build a throwaway, or to promise to
deliver the throwaway to customers .
Process Models: THE PROTOTYPING MODEL
• Advantages:
• The prototype can serve as "the first system, using which user gets a
feel for the actual system and on other hand developers get to build
something immediately.
• Reduces risk of failure on a larger scale.
Process Models: THE PROTOTYPING MODEL
• List the shortfalls of Prototyping Model?
Process Models: THE PROTOTYPING MODEL
• Shortfalls of Prototyping Model:
• The customer sees what appears to be a working version of the
software, unaware that the prototype is held together just for a
temporary phase.
• In the rush to get a working prototype working no one considers
overall software quality or long-term maintainability.
• When management informs that the product must be rebuilt so that
high levels of quality can be maintained, the customer cries foul and
demands that "a few fixes" be applied to make the prototype a
working product.
• Too often, software development management relents.
Process Models: THE PROTOTYPING MODEL
• Shortfalls of Prototyping Model:
• The developer often makes implementation compromises in order to
get a prototype working quickly.
• An inappropriate operating system or programming language may be
used simply because it is available and known; an inefficient
algorithm may be implemented simply to demonstrate capability.
• After a time, the developer may become familiar with these choices
and forget all the reasons why they were inappropriate.
• The less-than-ideal choice has now become an integral part of the
system.
Process Models: THE PROTOTYPING MODEL
• Although problems can occur, prototyping can be an effective
paradigm for software engineering.
• The key is to define the rules of the game at the beginning; that is,
the customer and developer must both agree that the prototype is
built to serve as a mechanism for defining requirements and
validating those.
• Did you observe any common key aspect in those process models in
context to software development?
Process Models: EVOLUTIONARY SOFTWARE PROCESS MODELS
• There is growing recognition that software, like all complex systems,
evolves over a period of time.
• Business and product requirements often change as development
proceeds, making a straight path to an end product unrealistic; tight
market deadlines make completion of a comprehensive software
product impossible, but a limited version must be introduced to
meet competitive or business pressure; a set of core product or system
requirements is well understood, but the details of product or system
extensions have yet to be defined.
• In these and similar situations, software engineers need a process
model that has been explicitly designed to accommodate a product
that evolves over time.
Process Models: EVOLUTIONARY SOFTWARE PROCESS MODELS
• The linear sequential model is designed for straight-line
development.
• In essence, this waterfall approach assumes that a complete system
will be delivered after the linear sequence is completed.
• The prototyping model is designed to assist the customer (or
developer) in understanding requirements.
• In general, it is not designed to deliver a production system. The
evolutionary nature of software is not considered in either of these
classic software engineering paradigms.
Process Models: EVOLUTIONARY SOFTWARE PROCESS MODELS
• Evolutionary models are iterative.
• Figure in next slide depicts a spiral model that contains six task
regions:
Process Models: THE INCREMENTAL MODEL
Process Models: TE INCREMENTAL MODEL
• The Spiral Model
• Customer communication—tasks required to establish effective
communication between developer and customer.
• Planning—tasks required to define resources, timelines, and other
project related information.
• Risk analysis—tasks required to assess both technical and
management risks.
• Engineering—tasks required to build one or more representations
of the application.
• Construction and release—tasks required to construct, test, install,
and provide user support (e.g., documentation and training).
Process Models: TE INCREMENTAL MODEL
• The Spiral Model
• Customer evaluation—tasks required to obtain customer feedback
based on evaluation of the software representations created during
the engineering stage and implemented during the installation stage.
Process Models: TE INCREMENTAL MODEL
• Post Lecture Task:
• Study the Spiral Model diagram and identify the basic working
of the model.
Process Models: THE INCREMENTAL MODEL
Process Models: THE INCREMENTAL MODEL
• The Spiral Model:
• The spiral model combines the idea of iterative development with the
systematic, controlled aspects of the waterfall model.
• Each cube placed along the axis can be used to represent the starting
point for different types of projects.
Process Models: THE INCREMENTAL MODEL
• The Spiral Model: {A different View point}
• A “concept development project” starts at the core of the spiral and
will continue (multiple iterations occur along the spiral path that
bounds the central shaded region) until concept development is
complete.
• There are times when the process is dormant, but whenever a change
is initiated, the process starts at the appropriate entry point (e.g.,
product enhancement).
Process Models: THE INCREMENTAL MODEL
• The Spiral Model:
• The spiral model is a realistic approach to the development of large-
scale systems and software.
• The RUP is a phased model that identifies four discrete phases in the
software process.
• However, unlike the waterfall model where phases are equated with
process activities, the phases in the RUP are more closely related
to business rather than technical concerns.
• The final phase of the RUP is concerned with moving the system from
the development community to the user community and making it
work in a real environment.
• How these activities are carried out depends on the type of software,
people and organisational structures involved.
• What services are required from the system and identifying the
constraints on the system's operation and development
PROCESS ACTIVITIES: Software specification
• Requirements engineering is a particularly critical stage of the
software process as errors at this stage inevitably lead to later
problems in the system design and implementation.
PROCESS ACTIVITIES: Software specification
• There are four main phases in the requirements engineering process:
• Feasibility Study
• Requirements elicitation & analysis
• Requirements specification
• Requirements validation
PROCESS ACTIVITIES: Software specification
PROCESS ACTIVITIES: Software specification
• Feasibility Study
• An estimate is made of whether the identified user needs may be
satisfied using current software and hardware technologies.
• This may involve the development of one or more system models and
prototypes.
• This helps the analyst understand the system to be specified.
PROCESS ACTIVITIES: Software specification
• Requirements specification
• The activity of translating the information gathered during the
analysis activity into a document that defines a set of requirements.
• Two types of requirements may be included in this document.
"requirement" ≠ "specification“
• Requirement – understanding between customer and supplier
• Specification – what the software must do
Lecture Task
[1] Giving reasons for your answer based on the type of system being
developed, suggest the most appropriate generic software process
model that might be used as a basis for managing the development of
the following systems:
• A system to control anti-lock braking in a car
• A virtual reality system to support software maintenance
• A university accounting system that replaces an existing system
• An interactive system that allows railway passengers to find train
times from terminals installed in stations.
Lecture Task
[2] “Both the waterfall model of the software process and the
prototyping model can be accommodated in the spiral process model.”
Justify with appropriate example.
• The design process involves adding formality and detail as the design
is developed with constant backtracking to correct earlier designs.
PROCESS ACTIVITIES: Software design and implementation
PROCESS ACTIVITIES: Software design and implementation
• The specific design process activities are:
• Architectural design: The sub-systems making up the system and
their relationships are identified and documented.
• Interface design: For each sub-system, its interface with other sub-
systems is designed and documented.
PROCESS ACTIVITIES: Software design and implementation
• Component design Services are allocated to components and the
interfaces of these components are designed.
• The manager who pays little attention to the process runs the risk of
inserting competent technical methods and tools into a vacuum.
• BUT:
• Every software system is different.
• Most systems are not well specified, or the requirements change
during development.
• Estimating time and effort can be prone to errors, even when the
system is well understood.
• at the same time, letting everyone on the team know (by words and,
far more important, by actions) that quality counts and that it will
not be compromised.
The Management Spectrum: People {The Software Team}
• “Not every group is a team, and not every team is effective.” Glenn
Parker
• What key aspects would you (as a Project Manager) consider while
constituting a software team i.e team composition ?
The Management Spectrum: People {The Software Team}
• There are many reasons that software projects get into trouble.
• The scale of many development efforts is large, leading to complexity,
confusion, and significant difficulties in coordinating team members.
• Uncertainty is common, resulting in a continuing stream of changes
that ratchets the project team.
The Management Spectrum: People {The Software Team}
• What can be possible C&C Issues when dealing with a large team?
• What mechanism can be adopted for effective coordination &
Communication among team members to avoid C&C Issues?
The Management Spectrum: People {The Software Team}
• Class Activity: You have been assigned a task to clean the entire
campus of NU?
• Problem Decomposition
• In order to develop a reasonable project plan, you have to functionally
decompose the problem to be solved.
• Problem Decomposition
• During the scoping activity no attempt is made to fully decompose
the problem.
• Rather, decomposition is applied in two major areas:
• (1) the functionality that must be delivered
and
• (2) the process that will be used to deliver it
The Management Spectrum: People {Product}
• Problem Decomposition
• During the scoping activity no attempt is made to fully decompose
the problem.
• Rather, decomposition is applied in two major areas:
• (1) the functionality that must be delivered
and
• (2) the process that will be used to deliver it
Software Project Management
• Large software projects are usually different in some ways from previous
projects.
• Therefore, even managers who have a large body of previous experience
may find it difficult to anticipate problems.
• Furthermore, rapid technological changes in computers and
communications can make a managers experience obsolete.
• Lessons learned from previous projects may not be transferable to new
projects.
Software Project Management: Management activities
• Proposal Writing:
• The first stage in a software project may involve writing a proposal to
win a contract to carry out the work.
• The proposal describes the objectives of the project and how it will be
carried out.
• It usually includes cost and schedule estimates, and justifies why the
project contract should be awarded to a particular organisation or
team.
• proposal writing is a skill that you acquire through practice and
experience.
Software Project Management: Management activities
• Project Planning:
• Effective management of a software project depends on thoroughly
planning the progress of the project.
• Managers must anticipate problems that might arise and prepare
tentative solutions to those problems.
• A plan, drawn up at the start of a project, should be used as the driver
for the project.
• This initial plan should be the best possible plan given the available
information.
• It evolves as the project progresses and better information becomes
available.
Software Project Management: Management activities
• Project Planning:
Establish the project constraints
Make initial assessments of the project parameters
Define project milestones and deliverables
while project has not been completed or cancelled loop
Draw up project schedule
Initiate activities according to schedule
Wait ( for a while )
Review project progress
Revise estimates of project parameters
Update the project schedule
Renegotiate project constraints and deliverables
If ( problems arise) then
Initiate technical review and possible revision
end It
end loop
Software Project Management: Management activities
• Project Planning:
• Work breakdown- This sets out the breakdown of the project into activities
and identifies the milestones and deliverables associated with each
activity.
• Note: You should regularly revise the project plan during the project.
• Some parts, such as the project schedule, will change frequently;
other parts will be more stable.
• To simplify revisions, you should organise the document into
separate sections that can be individually replaced as the plan
evolves.
Software Project Management: Management activities
• Milestones and deliverables:
• The milestones in this case are the completion of the outputs for each
activity. The project deliverables, which are delivered to the customer, are
the requirements definition and the requirements specification.
Software Project Management: Management activities
• Project Scheduling:
• People working on a project may fall ill or may leave, hardware may
break down, and essential support software or hardware may be
delivered late.
• Ac1vity: Part of a project that takes place over time (also known as a task).
• Event: The end of a group of activities, e.g., agreement by all parties on the
budget and plan
• Dependency: An activity that cannot begin until some event is reached
• Resource: Staff time, equipment, or other limited resources required by
an activity.
Software Project Management: Management activities
• Project Scheduling:
• Bar charts and activity networks
• They are graphical notations that are used to illustrate the project
schedule.
• Bar charts show who is responsible for each activity and when the
activity is scheduled to begin and end.
• Activity networks show the dependencies between the different
activities making up a project.
Software Project Management: Management activities
• Project Scheduling:
• Activity networks: Task durations and dependencies and activities
will be given.
• Process involved:
Immediate Estimated
Activity Predecessor Completion Time (Days)
A None 90
B A 15
C B 5
D G 20
E D 21
F A 25
G C,F 14
H D 28
I A 30
J D,I 45
Software Project Management: Management activities
• Project Scheduling:
• Activity networks: Eg:
• From the activity description chart, we can determine immediate
predecessors for each activity.
• The earliest and latest start times for each activity which will not alter the
earliest completion time of the project.
• The earliest finish times for each activity which will not alter this date.
• Activities with rigid schedule and activities that have slack in their schedules.
Software Project Management: Management activities
• Project Scheduling: Activity networks: Eg:
• Earliest Start Time / Earliest Finish Time
• Make a forward pass through the network as follows:
• Evaluate the ES of all the nodes for which EF of all the immediate predecessor
has been determined.
• ES = Max EF of all its immediate predecessors.
• EF = ES + Activity duration.
110,124
0,90 90,115 115,129 129,149 177
149,177
A F G D H 194
A F G D H
90 25 14 20 28
EARLIEST FINISH
120,165
90,120 194
149,194
I J
I J
30 45
Software Project Management: Management activities
• Project Scheduling: Activity networks: Eg:
• Latest start time / Latest finish time: Backward Pass
• Make a backward pass through the network as follows:
• Evaluate all the activities that immediately precede the finish node.
• The latest finish for such an activity is LF = minimal project completion time.
• The latest start for such an activity is LS = LF - activity duration.
• Evaluate the LF of all the nodes for which LS of all the immediate successors
has been determined.
• LF = Min LS of all its immediate successors.
• LS = LF - Activity duration.
• Repeat this process backward until all nodes have been evaluated.
Software Project Management: Management activities
• Project Scheduling: Activity networks: Eg:
• Latest start time / Latest finish time: Backward Pass
Software Project Management: Management activities
• Project Scheduling: Activity networks: Eg:
• Slack Times
• Activity start time and completion time may be delayed by planned
reasons as well as by unforeseen reasons.
• Some of these delays may affect the overall completion date.
• To learn about the effects of these delays, we calculate the slack
time, and form the critical path.
Software Project Management: Management activities
• Project Scheduling: Activity networks: Eg:
• Slack Times
• Slack time is the amount of time an activity can be delayed without
delaying the project completion date, assuming no other delays are
taking place in the project.
• Slack Time = LS - ES = LF - EF
Software Project Management: Management activities
• Project Scheduling: Activity networks: Eg:
• Critical Path
• The critical path is a set of activities that have no slack,
connecting the START node with the FINISH node.
• Project Risks
• Product Risks
• Business Risks
Software Project Management: Management activities
• Risk management:
• Project Risks
• It affects the project schedule or resources
• Eg: Experienced designer leaving the organization
• Product Risks
• It affect the quality or performance of the software being developed.
• Eg.:- the failure of a purchased component to perform as expected.
Software Project Management: Management activities
• Risk management:
• Business Risks
• They are risks that affect the organisation developing or procuring
the software.
• For example, a competitor introducing a new product is a business
risk.
Software Project Management: Management activities
• Risk management:
• These risk types overlap. If an experienced programmer leaves a
project, this can be a project risk because the delivery of the system
may be delayed.
• It can also be a product risk because a replacement may not be as
experienced and so may make programming errors.
• Finally, it can be a business risk because the prograrmmer’s
experience is not available for bidding for future business.
• The risks that may affect a project depend on the project and the
organisational environment where the software is being developed.
Software Project Management: Management activities
• Risk management:
• Identify type of risks for below mentioned & Justify:
• Staff turnover
• Management change
• Hardware unavailability
• Requirements change
• Specification delays
• Size underestimate
• CASE tool underperformance
• Technology Change
• Product competition
Software Project Management: Management activities
• Risk management:
Software Project Management: Management activities
• Risk management Process:
Software Project Management: Management activities
• Risk management Process:
• 1. Risk identification Possible project, product and business risks are
identified.
• 2. Risk analysis The likelihood and consequences of these risks are
assessed.
• 3. Risk planning Plans to address the risk either by avoiding it or
minimising its effects on the project are drawn up.
• 4. Risk monitoring The risk is constantly assessed and plans for risk
mitigation are revised as more information about the risk becomes
available.
Software Project Management: Management activities
• Risk management Process:
• The probability of the risk might be assessed as very low «10%), low
(10-25%), moderate (25-50%), high (51-75%) or very high (>75%).
• These are statements of services the system should provide, how the
system should! react to particular inputs and how the system should
behave in particular situations.
• They add detail and explain how the user requirements should be
provided by the system.