Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Community
Ask the community for help and clear up your study doubts
Discover the best universities in your country according to Docsity users
Free resources
Download our free guides on studying techniques, anxiety management strategies, and thesis advice from Docsity tutors
Software engineering is about the development and application of processes and tools for managing the complexities inherent in creating high quality software systems. It introduces the fundamental software engineering concepts and terminology. This lecture includes: Software, Requirement, Specification, XP, Agile, Programming, Analysis, Elicitation, Stakeholders, Maintenance, Domain
Typology: Slides
1 / 29
1
CS
4-
Sometimes called
requirements elicitation
or
requirements discovery
Involves
technical staff
working with
customers
to
find out about the application domain, the servicesthat the system should provide and the system’soperational constraints
May involve end-users, managers, engineersinvolved in maintenance, domain experts, tradeunions, etc. These are called
stakeholders
Stakeholders don’t know
what they really want
Stakeholders express requirements in their
own
terms
Different stakeholders may have
conflicting
requirements
Organisational and political factors
may influence
the system requirements
The
requirements change
during the analysis
process. New stakeholders may emerge
Requirements
validation
Domain
understanding
Prioritization
Requirements
collection
Conflict
resolution
Classification
Requir ementsdefinition and
specification
Process
entry
CS
4-
Requirements should be
specific, so you can tell whether you met them.
precise as necessary, but no more
Functional requirements
inputs, outputs, and the relations between them
in theory, can specify completely
Non-functional requirements
hard to specify, can’t specify completely
•scalability
•maintainability
•portability
•security
•reliability•efficiency
•usability
CS
4-
CS
4-
The “get” command will transfer ...
Input forms, dynamic pages
Files, sockets, XML, …
Requirement: a desired relationship among
and installed in the environment.
achieve the requirement.
A specification is a restricted kind of requirement
Lathe Operator
Machine
RequiredBehavior
of lathe
Specification
Requirements
Requirements
define necessary objectives e.g.
software must handle error states reasonably and effectively,and provide explicit feedback to the users.
Specifications Define How to Meet The Objectives
list out all possible error states for a certain form, along with allof the error messages that should be displayed to the user.
CS
4-
Performance
Must answer a query in 3 seconds
Usability
New user must be able to finish buying a book in 15 minutes
90% of users must say they like interface
Maintainability
New programmers should be able to fix first bug in two weeks on the job
CS
4-
Must use Java
Must get it finished in 1 year spending less
than $1,000,000.
Release Planning
Happens in the beginning of every project
Made up of 2 phases: Exploration + Planning Game
Each project divided up into 1+ releases
Each release must
Be small
Must deliver enough features to be of business value
Consist of a collection of user stories to provide features
Usually written on indexcards because easy to
understand
Pass around
Tear up
Prioritize
One and only onebusiness feature
Written by & focus oncustomer
Avoid details of specifictechnology, data baselayout, and algorithms
Too vague and hardto
Estimate
Test
Defines implementationdetails
Customer doesn’t careabout Tomcat orDreamweaver
More than onebusiness feature
Search and
Selection functionality
Split
Northwind Inc Business Problem
Large reseller of food & beverage products.
Product sales over direct-mail catalogs.
Processing of ordersdone over the phone
from initial input of the order to
shipment and delivery of the order
3-
Create a Web presence that allows customers to self-order
Northwind products and
track the status of their orders all the way through to shipment
3-
3-21
User Story Estimating&Planning Game
Estimates are in Story Points
1 story point = 1 ideal day
Prioritization of User Stories
Priority is from 1 to
n, not high, medium, low.
Velocity Determination
(
No. of Devs/Load Factor
✕
Iteration Length in Business Days
E.g. for
8 developers
2-week iteration (10 business days)
load factor=4 (as developers spend time not coding (meetings, email,pair programming)
Iteration velocity (#story pts team can complete)= (8/4 X 10) = 20
User Story Estimating&Planning Game
So, using the previous calculation of 20 ideal days as theiteration team velocity, for six development iterations,the velocity calculation is as follows:
6
✕
20 = 120
The result is 120 ideal days in the release.
Plan for just one iteration at a time
Planning game is the main interface between customerand development team
Customer provides all the story cards that have beenwritten
Developers write on each card an estimate of how long itwill take to implement
Developers provide an estimate of available developers Xtime (= “velocity”)
Customer chooses stories by priority to fill the availabletime
Here is the formula for calculating the velocity of anindividual:
No. of Hours in Workday
✕
Length of Iteration/Load
Factor (Truncated) = Individual Velocity
The length of the iteration is in business days. The loadfactor accounts for other, non development activities. Theindividual velocity is in ideal hours.
For example, the following uses an 8-hour workday with a2-week iteration and a load factor of 4:
8
✕
10/4 = 20
The result is 20 ideal hours in the iteration for thedeveloper.