You are on page 1of 27

“The function of education is to teach one to think intensively and to think critically.


1
- Martin Luther King, Jr.
• Software Development Activities
• Qualities of a Specification
• Software Engineering Myths

“Intelligence plus character – that is the goal of true education.” 2


• Feasibility Study
o Technical
o Operational
o Legal and Contractual
o Political
o Schedule
o Economic

“Intelligence plus character – that is the goal of true education.” 3


• User Interface Design
• Architectural (large-scale) Design
• Detailed Design
• Programming (Coding)
• System Integration
• Production
• Maintenance

“Intelligence plus character – that is the goal of true education.” 4


• Documentation
• Project Management
• Database Design
• Verification
 Are we building the product right?
o Unit Testing
o System Testing

“Intelligence plus character – that is the goal of true education.” 5


• Validation
 Are we building the right product?
o Acceptance Testing

• Requirements Engineering
(Specification)

“Intelligence plus character – that is the goal of true education.” 6


•Implementation Free
-What is needed, not how this is achieved

•Complete
-There is nothing missing.

•Consistent
- No individual requirement contradicts any
other.

“Intelligence plus character – that is the goal of true education.” 7


• Unambiguous
- Each requirement has a single interpretation
• Minimal
- There are no unnecessary ingredients
• Understandable
- By both the clients and the developers

“Intelligence plus character – that is the goal of true education.” 8


• Achievable
- Requirements are technically feasible
• Testable
- It can be demonstrated that the
requirements have been met.

“Intelligence plus character – that is the goal of true education.” 9


• Functional Requirements
• Data Requirements
• Constraints
• Guidelines
• Performance Requirements

“Intelligence plus character – that is the goal of true education.” 10


Write a Java program to provide a
personal telephone directory. It should
implement functions to look up a number
and to enter a new telephone number.
The program should provide a friendly
user interface.

“Intelligence plus character – that is the goal of true education.” 11


1. Does it specify requirements, not
implementation?

2. Is it testable?

3. Is it clear?

Vague words that should be avoided within a


specification: “flexible”, “fault tolerant”, “fast”,
“adequate”, “user friendly”.
“Intelligence plus character – that is the goal of true education.” 12
1. Listening
- Requirements Elicitation

2. Thinking
- Requirements Analysis

3. Writing
- Requirements Definition

“Intelligence plus character – that is the goal of true education.” 13


Can be depicted using this diagram:

Requirements Gathering
- Developers discuss with the
client and end users and know their
expectations from the software.

“Intelligence plus character – that is the goal of true education.” 14


Organizing Requirements
- Developers prioritize and arrange the
requirements in order of importance, urgency and
convenience.

Negotiation & Discussion


- If requirements are ambiguous or there are some
conflicts in requirements of various stakeholders, if
they are, it is then negotiated and discussed with
stakeholders. Requirements may then be prioritized
and reasonably compromised.

“Intelligence plus character – that is the goal of true education.” 15


Documentation
- All formal & informal, functional and
non-functional requirements are documented
and made available for next phase
processing.

“Intelligence plus character – that is the goal of true education.” 16


• Interview
• Survey
• Questionnaires
• Task Analysis
• Brainstorming
• Prototyping
• Observation
“Intelligence plus character – that is the goal of true education.” 17
• Functional Requirements
-Related to functional aspect of software
• Non-functional Requirements
- They are implicit or expected
characteristics of software, which users make
assumption of.
Ex. Security, logging, storage, interoperability

“Intelligence plus character – that is the goal of true education.” 18


Requirements are categorized logically as
• Must Have : Software cannot be said operational without
them.
• Should have : Enhancing the functionality of software.
• Could have : Software can still properly function with these
requirements.
• Wish list : These requirements do not map to any objectives
of software.

While developing software, ‘Must have’ must be implemented,


‘Should have’ is a matter of debate with stakeholders and
negation, whereas ‘could have’ and ‘wish list’ can be kept for
software updates.
“Intelligence plus character – that is the goal of true education.” 19
Myth 1: Once we write the program and
get it to work, our job is done.

Reality: The sooner you begin writing


code, the longer it will take you to get
done. 60% to 80% of all efforts are spent
after software is delivered to the
customer for the first time.

“Intelligence plus character – that is the goal of true education.” 20


• Myth 2: software engineering will make us
create voluminous and unnecessary
documentation and will invariably slow us
down.
• Reality: it is not about creating
documents. It is about creating a quality
product. Better quality leads to a reduced
rework. Reduced work results in faster
delivery times.

“Intelligence plus character – that is the goal of true education.” 21


• Myth 3: We can solve schedule problems
by adding more programmers.

• Reality: Maybe. It increases coordination


efforts and may slow things down.

“Intelligence plus character – that is the goal of true education.” 22


• Myth 4: While we don’t have all
requirements in writing yet, we know
what we want and can start writing code.

• Reality: Incomplete up-front definition is


the major cause of software project
failures.

“Intelligence plus character – that is the goal of true education.” 23


• Myth 5: I can’t tell you how well we are
doing until I get parts of it running.

• Reality: Formal reviews of various types


both can give good information and are
critical to success in large projects.

“Intelligence plus character – that is the goal of true education.” 24


• Myth 6: The only deliverable that matters
is working code.

• Reality: Documentation, test history, and


program configuration are critical parts of
delivery.

“Intelligence plus character – that is the goal of true education.” 25


• Myth 7: I am a (super) programmer. Let
me program and I will get it done.

• Reality: A sign of immaturity. A formula


for failure. Software projects are done by
teams, not individuals, and success
requires much more than just coding.

“Intelligence plus character – that is the goal of true education.” 26


• Myth 8: Writing code is the major part of
creating a software product.

• Reality: Coding may be as little as 10% of


the effort, and 50% - 70% may occur after
delivery.

“Intelligence plus character – that is the goal of true education.” 27

You might also like