OO Design and Development
Spring 2008
S. Iyengar
Introduction
•
•
•
•
•
•
•
Course objectives
Grading Scale
Syllabus/Content
Projects
Collaboration Policy
Case Study
Overview
Software Quality
and
Software Engineering
•
•
•
•
•
What is software?
Types of software.
What does “Quality of Software” Mean?
What is meant by Engineering?
How and why do you engineer software?
Software Development
•
•
•
•
New software
Extension and newer versions
Validity – from user perspective
Speed in capturing and translating ideas
and needs
• Efficient implementation and deployment
• Effective maintainability
• Continuous improvement
Software Quality
•
•
•
•
•
•
What do we mean by Software Quality?
How do we ascertain it?
What should we do to achieve it?
Why is software quality essential?
How does it help?
Tools to achieve quality!
Software Engineering
•
•
•
•
•
What is meant by Software Engineering?
What are the main topics of SE?
When does it start and when does it end?
http://www.rspa.com/spi/
For your own understanding – list topics in
SE, Advanced SE, from web/conference
publications.
UML
•
•
•
•
•
•
•
•
Picture is worth a thousand words (?)
Design that states ones thoughts
Precise
Unambiguously
Language
Structures and syntactic rules
Completeness
Universal applications
UP
•
•
•
•
•
•
Language can be abused
Methodology assists in staying on track
Effective Process of software development
Standards, Documents, Tools
Architecture, Use and Risk
Iterative development
Software Development Phases
•
•
•
•
•
Inception
Elaboration
Construction
Transition
Each phase has five core workflows
–
–
–
–
–
Requirement
Analysis
Design
Implementation
Test
Inception Phase
• Vision – what is the product, its goals, and
its specialty.
• Introductory UI
• Preliminary list of users, uses and
requirements.
• We will firm up the vision and list of user
• Research, Feasibility argument and
business case
Elaboration Phase
• Identify details of the uses and any unspecified
requirements and uses.
• Analyze details of the users and uses as well as
intermediary elements. Create test scenarios.
• Establish tools and systems needs as well as
dynamic behavior of the system.
• Design the software with details necessary for
implementation with maximum flexibility for
change.
• Re-visit requirements and needs w.r.t. Vision
Construction Phase
• Identify languages, developers, schedules, test methods
and field test process.
• Implement and test version 1. Ensure adherence to the
design documents.
• Iteratively – enhance implementation details and ensure
unit tests are performed.
• As implementation matures thoroughly perform integrity
and overall tests.
• Develop technical manuals and training programs – for
installation as well as users.
• Start field tests and integrate feedback (or add to
requirements document).
Transition Phase
• Sell and ship.
• Assist in customer installations and
training.
• Customer service – online as well as
telephone.
• Track feedback for validation, corrections,
and enhancement purposes.
• Watch the competition!
• Inception -- establish the business case and define
scope for your project, while determining the tools to be
employed.
• Elaboration -- validate requirements, establish a
baseline for the architecture, and mitigate the highest
risks.
• Construction -- develop, integrate, and test all
components of your project's application.
• Transition -- make the software you created available
to the user community and ensure that user
expectations are met.
Multiple Hats
Descargar

OO Design and Development