Ch1 SEN Notes Updated
Ch1 SEN Notes Updated
• Computer S/W or simply S/W is a generic term that refers to a collection of data or
computer instructions that tell the computer how to work, in contrast to physical
hardware from which the system is built , that actually performs the work. S/W is an
agent which produces the information in required form that could be audio, video,
textual, graphical or even encrypted format.
• Software is set of instructions that when executed provide desired features, functions
and performance
• Computer Software is the product that the software professionals build and then
support over the long term. Software is written to handle an Input – Process –
Output system to achieve predetermined goals. Software is logical rather than a
physical system element.
• 2 Real time Software: These are used to monitor, control and analyze real world events
as they occur. Ex- Weather forecasting. Where s/w will gather and process the status of
temperature, humidity and other environmental parameters to forecast the weather.
• 3. Embedded Software: It is placed in Read Only memory(ROM) of the product and
control various functions of products.(security systems, signaling system, washing
machine, microwave oven etc)
Software Engineering (22413) – Chapter 1 1
• 4 Business Software: This is the largest application area. The software designed to
process the business applications is called business s/w. eg- Payroll, file monitoring
system, employee management, account management, data warehousing tool,
management information system, enterprise resource planning (ERP).
• 5 Personal computer Software: S/W used in personal computers. Eg- word processors,
computer graphics, multimedia and animating tools, database management, computer
games etc.
• 6 Artificial intelligence Software: It uses non numerical algorithms. They are used for
complex and highly analytical problems. Applications of this category are robotics,
artificial neural n/w, business intelligence, image and video recognition etc.
Characteristics of a Software:
• There are three phases- Initial phase is burn-in phase where failure intensity is high.
It is expected to test the product before delivery. Due to testing and fixing faults,
failure intensity will come down.
• The second is useful life phase where failure intensity is approximately constant and is
called useful life of a product.
• After few years failure intensity will increase due to wearing of components. This
phase is called wear out phase.
• Before s/w curve becomes steady because of change again a new change is requested
and this way curve spikes.
• S/W is one time development effort and continuous maintenance effort in order to keep
it operational. However making 1000 copies is not an issue and it does not involve any
• In S/W every project is a new project. We start from the scratch and design every unit
of the s/w product. Huge efforts are required to develop the s/w which further increases
the cost.
4. Efficient: Any software is said to be efficient if it uses available resources in the most
efficient manner and produce result in timely manner.
6. Dependability It is the ability that provide services which are trusted by users
• Definitions:
• “The establishment and use of sound engineering principles in order to obtain
economically developed software that is reliable and works efficiently on real
machines”
• “A discipline whose aim is the production of quality software, software that is
delivered on time, within budget and that satisfies its requirement”
• S/W engg process is the glue that holds the technology layers together and enables
timely development of computer software.
• Software engg methods provide the technical “how to” for building software.
• Software engg Tools provide automated or semi automated support for the process and
the methods.
• When tools are integrated ,information created by one tool can be used by another.
2. Design- Based on SRS design is prepared. O/P of this is phase will be specifying the
hardware and software requirements of the system. DFD, Flowcharts are prepared here.
(sketch, blueprint, ,model)
4. Testing – Testing of the actual code to make ensure that system will satisfy all needs
of customer. Various testing strategies are used. O/P of testing phase is corrected and
modified code.
5. Deployment- In this system is deployed at user’s site for their use. Customer uses the
s/w and gives feedback to development team for any changes or modifications in system if
any.
6. Maintenance- Once software is deployed actual problems from from users perspective
will comes up. It is the responsibility of development team to solve the user’s problem.
This is maintenance of system.(Add Functionality may need to add in application as per
users req)
• It establishes the foundation for a complete s/w process by identifying a small number
of framework activities that are applicable to all s/w projects, regardless of their size or
complexity.
• It encompasses a set of umbrella activities that are applicable across the entire s/w
process.
• It is a collection of activities, actions and tasks that are needed to perform in order to
create work product, s/w product, a product.
• Each action is populated with the individual work tasks that accomplish some part of
the work implied by the action.
The following generic process framework is applicable to the vast majority of s/w
projects.
• Communication-
• Planning-
• It establishes a plan for s/w engg work that follows. It describes the technical
tasks to be conducted, the risks that are likely, resources required, work products
to be produced and work schedule.
• It requires as many people (software teams) working on the same projects but
different functions at same time.
• Modeling-
• It involves creation of models that allows the developer and the customer to
better understand s/w requirements and the design that will achieve those
requirements.
• Construction-
• It combines code generation and testing that is required to uncover errors in the
code.
• Deployment-
• The s/w is delivered to the customer who evaluates the delivered product and
provides feedback based on the evaluation.
• Tasks – It focuses on small/narrow but well defined objective that produces a tangible
o/p (unit testing on i/p or o/p)
• Task set - A task set defines the actual work to be done to accomplish the objectives of
a software engg action.
Eg- Requirements gathering is an important s/w engg action that occurs during
the communication activity.
For small and relatively simple project task set for requirements gathering might
look like this: Make a list of stakeholders for the project
• Prioritize requirements
For large and complex project different task set would be required. It might involve
following tasks:
• Conduct meetings
• Software project tracking and control – Allows the s/w team to assess the progress
against the project plan and take necessary action to maintain schedule.
• Risk management – Asses risks that may affect the outcome of the project or the
quality of the product.
• Software quality assurance- Defines and conducts the activities required to ensure
s/w quality
• Formal technical reviews- assess s/w engg work products in an effort to uncover and
remove errors before they are propagated to the next action or activity.
• Measurement- Defines and collects process, project and product measures that assist
the team in delivering s/w that meets customer’s needs, can be used in conjunction
with all framework and umbrella activities.
• Reusability management- Defines criteria for work product reuse and establishes
mechanism to achieve reusable components.
• Work product preparation and production- Involves the activities required to create
work products such as models, documents, forms and lists.
The name Prescriptive is given because the model prescribes a set of activities, actions,
tasks, quality assurance and changes the mechanism for every project.
Everything will be in sequential or linear manner.
It has predefined framework
Regardless of process model that is selected, s/w engg have traditionally chosen a
generic process framework that has the following framework activities:
Communication, Planning, Modeling, Construction, and Deployment.
• In Waterfall model any phase of development process begins only if previous phase is
completed.
• The developer must complete each phase before the next phase begins.
• The goal of this phase is to understand the exact requirements of the customer and to
document them properly. This activity is executed together with the customer, as the
goal is to document all functions, performance and interfacing requirements for the
s/w.
• SRS document is a contract between the developer and customer. If the developer fails
to implement full set of requirements, it may amount to failure to implement the
contracted system.
2. Design phase:
• The SRS document is produced in the previous phase, which contains the exact
requirements of the customer.
• Overall s/w architecture is defined and the high level and detailed design work is
performed. This work is documented and known as s/w design description (SDD)
document.
3. Implementation/Coding:
• Small modules are tested in isolation from the rest of the s/w product.
4. Verification/Testing:
• This is a very important phase. Effective testing will contribute to the delivery of
higher quality s/w products, more satisfied users, lower maintenance costs and more
accurate and reliable results.
• Here coding or job done by developer is verified against requirements of user in order
to ensure that software will satisfy all business requirements of user.
• After the successful verification s/w deployed at users site for their use.
• Testing phase ensures that the s/w is developed as per user’s req.
• It is very expensive activity and consumes one third or one half of the cost of a typical
development project.
• Purpose of unit testing is to determine that each module is correctly implemented. This
gives the chance to determine that the interface between modules is also correct for
which integration testing is performed.
• S/W maintenance is a task that every development group has to face, when the s/w is
delivered to the customer’s site, installed and is operational.
• The time spent and effort required keeping the s/w operational after release is very
significant.
• Despite the fact that it is a very important and challenging task, it is routinely poorly
managed headache that nobody wants to face.
• The purpose of this phase is to preserve the value of the s/w over time. This phase may
span for 5 to 50 years whereas development may be 1 to 3 years.
3. A working version of the system is not seen until late in the project’s life.
• Incremental process models are effective in the situations where requirements are
defined precisely and there is no confusion about the functionality of the final product.
• This model has same phases like waterfall model but these may be conducted in
several cycles.
• A useable product is released at the end of the each cycle, with each release providing
additional functionality.
• During the first requirements analysis phase, customers and developers specify as
many requirements as possible and prepare a SRS document.
The series of releases is referred to as increments with each increment providing more
functionality to the customers.
After the first increment a core product is delivered which can be already used by
customer.
Based on customer feedback a plan is developed for the next increments and
modifications are made accordingly.
This process continues with increments being delivered until the complete product is
delivered.
With this model, first increment may be available within few weeks or months,
whereas the customer generally waits months or years to receive a product using the
waterfall model.
During the first requirements analysis phase, customers and developers specify as
many requirements as possible and prepare a SRS document.
1. Increments are developed one after the other, after feedback has been received from
the user.
3. The system can be designed in such a manner that it can be delivered into pieces.
Special Process models takes many of the characteristics of one or more of the
conventional models (that is used from long time or has been used for long time).
Commercial off the shelf (cost) software components, developed by vendors who offer
them as products can be used when software is to be built.
The Template and Description is available and using the same we can use the same and
create s/w (e.x – user credentials page is similar to all pages)
It is iterative in nature.
Regardless the technology that is used to create the components the CBD models
follows following steps,
CBD leads to S/W reuse, and reusability provides software engineers with a
measurable benefits.
Advantages:-
Increase in productivity
This process is intended to ultimately improve the quality and functionality of a design.
In iterative design, interaction with the designed system is used as a form of research for
informing and evolving a project.
• In iterative model after every iteration there is a review and feedback based on which
one decides that what is needed or what is not needed in the next version, In
incremental model as we develop solution in parts so there is nothing to be reviewed or
given feedback on.
• The term Agile means “the ability to respond to changes” and here changes refer to
changes in terms of requirement, technology and people
• In this, the product is broken into small builds(chunks) and these builds are provided in
iterations
Each build is incremental in terms of features and the final build holds all the features
required by the customer
A working product is provided to the customer and important stakeholders at the end
of each iteration
When a customer is ready to have a meeting with a software team all the time
Fast Delivery
Fast Feedback.
Improves quality.
Disadvantages
Less documentation
Agile Methodologies:
Extreme Programming(XP)
Scrum
Dynamic systems Development Method(DSDM)
A prescriptive model also describes Agile methods note that not only do
how each of these elements are the s/w requirements change, but so
related to one another do team members, the technology
being used.
It is follows agile software development, what sets XP apart from the other agile
methodologies is that XP emphasizes the technical aspects of software development.
XP is lightweight, efficient, low risk, flexible, predictable, scientific, and fun way to
develop software.
It encompasses set of rules and practices that occur within set of 4 framework activities
– Planning, design, coding and testing
Planning:-
Software Engineering (22413) – Chapter 1 26
Creates user stories(will tell features, requirements , priorities are given on
index card, preferences are generated) , Values , acceptance test
criteria(unit test, user acceptance, user has to satisfy before going to
planning), iteration plan(figure shows it is iterative in nature each iteration
release 1 iteration).
Design :-
* Simple design –Keep it simple and stupid, coding and designing for uncertain
requirements implies the risk on something that is not needed.
Coding –
Testing:-
During the process of manufacturing a ball point pen, the cap, the body,
the tail and the clip, the ink cartridge and the ball point (all are small
units) are produced separately and unit tested separately.
When two or more units are ready, they are assembled and Integration
testing is performed.
Flexibility to developers
Easy to manage
Disadvantages of XP
It also focuses on results, not tasks and the results are identified as application features.
Speculation –
Collaborations-
It mostly depends upon communication and team work, but it also focuses
on individualism, since individual creativity is considered as import aspect
of collaboration.
Above all these things, important are matter of trust. Individual working
together must have trust between them for the purpose of.
• Provides a framework for building and maintaining systems which meet tight time
constraints with the help of incremental prototyping in a controlled project
environment.
• Feasibility study
• Analyzes the business requirements and constraints the viability (ability to work
successfully) of the application is determined.
• Business Study
• Sets the functional as well as information needs which will supply business
value
• Functional (ex Button -button name, work of button, image clean, rotate)
• Revisits prototypes built during FMI to make sure that all the prototypes have
been engineered in way to give operational business value for end users
• Implementation
• Places the latest software increment (an operational prototype) into the
operational environment
1.15 SCRUM
Scrum model is used in IT, sales, research, marketing, and pharms companies as well.
It is designed for teams of 3 to 9 members, who break their work into actions that can
be completed within time box iterations called as SPRINTS.
Sprints are no longer than 1 month and most commonly two weeks.
Then track the progress re-plan in 15 minute meetings called Daily Scrum
Sprint –
Short cycles of one month or less, during which the work is done
Sprint Planning –
Sprint Backlog–
Will select some prioritize requirements from Product backlog and implement in
the current sprint.
Daily Scrum - Then track the progress re-plan in 15 minute meetings called Daily
Scrum.
Scrum meetings –1.Are short in nature(15 min)von daily basis by scrum team
Potentially shippable product increment (Review) – Sprint review is done after each
increment from Scrum team, scrum master to user, stakeholders and client. Event held
at the end of the Sprint where the Scrum Team and key stakeholders review what was
accomplished in the Sprint and what has changed in their environment; next, attendees
collaborate on what to do next
The main reason to develop a prototype is that it is impossible to get the perfect
product in the first attempt.
This model can be used when the technical solutions are unclear to the development
team.
In this S/w or project undergoes through four phases iteratively in a “spiral” until it is
completed thus allowing multiple rounds of refinement.
Phases -
Planning: The first phase of the Spiral Model is the planning phase, where the scope
of the project is determined and a plan is created for the next iteration of the spiral.
Risk Analysis: In the risk analysis phase, the risks associated with the project are
identified and evaluated. Then the risks associated with that solution are identified and
the risks are resolved using the best possible strategy. At the end of this quadrant, the
Prototype is built for the best possible solution.
Engineering: During the third quadrant, the identified features are developed and
verified through testing. At the end of the third quadrant, the next version of the
software is available. In the engineering phase, the software is developed based on the
requirements gathered in the previous iteration.
Evaluation: In the fourth quadrant, the Customers evaluate the so far developed
version of the software. In the end, planning for the next phase is started. In the
evaluation phase, the software is evaluated to determine if it meets the customer’s
requirements and if it is of high quality.
Planning: The next iteration of the spiral begins with a new planning phase, based on
the results of the evaluation.
The software project is considered efficient if the process model is selected according
to the requirements. It is also essential to consider time and cost while choosing a
process model as cost and/ or time constraints play an important role in software
development.
The basic characteristics required to select the process model are project type and
associated risks, requirements of the project, and the users.
One of the key features of selecting a process model is to understand the project in
terms of size, complexity, funds available, and so on.
In addition, the risks which are associated with the project should also be considered.
Note that only a few process models emphasize risk assessment. Various other issues
related to the project and the risks are listed in Table are process model
Example :
Requirements of Waterfall
the Project Prototype
Stable funds Yes Yes
Memorizing Models
Waterfall Model – Waterfall Traditional No change
Iterative Model – Use Iterations refining the product after each Iteration
Chapter 1.
19. List any four selection criteria for Software Process Model.